분류 전체보기

    [JS] [1차] 추석 트래픽

    누적합과 Map 자료형을 활용해서 해결하였다. https://school.programmers.co.kr/learn/courses/30/lessons/17676 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제는 단순하지만 ms까지 시간이 주어지는 바람에 조금 까다로웠고 생각할 거리가 조금 있는 문제였다. 해당 문제를 해결하기 위해서 누적합 개념을 적용해볼 수 있다. 시간은 0부터 1씩 증가하는 형태의 데이터로 생각할 수 있다. 0ms부터 10ms까지의 상태를 배열로 나타낸다면 0,0,0,0,0,0,0,0,0,0,0 과 같은 형태로 나타낼 수 있다. 여..

    [React] Deep Dive 모던 리액트(24) 리액트 도커라이즈

    리액트 APP을 쉽고 빠르게 배포하기 위해서는 heroku와 같은 웹 서비스를 이용해볼 수 있다. 이러한 서비스들은 빠르고 쉽지만 애플리케이션을 자유롭게 커스터마이징하는 것은 힘들고 비용 또한 변동성이 크다는 단점이 있따. 과거에는 웹 애플리케이션을 배포하기 위해서는 장비준비,파일설치,소스설치,배포 등등을 직접 했었다고 한다. 하지만 요즘은 애플리케이션을 하나의 컨테이너로 만들어서 배포하는 것이 일반적이다. 이 컨테이너를 만드는 게 바로 도커이다. 도커 홈페이지에서는 도커를 아래와 같이 소개하고 있다. 도커는 개발자가 모던 애플리케이션을 구축, 공유, 실행하는 것을 도와줄 수 있도록 설계된 플랫폼이다. 도커는 지루한 설정 과정을 대신해줘 개발자가 코드 작성에 집중할 수 있게 해준다. 이 지루한 설정 과정..

    [JS] 숫자게임

    그리디 알고리즘을 활용해서 해결하였다. https://school.programmers.co.kr/learn/courses/30/lessons/12987 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr A와 B를 우선 정렬해준다. 이후 각 팀의 가장 쌘놈부터 결투를 시킨다. 문제가 승점의 차가 최대의 격차로 나게하는 것이 아닌 절대적인 승점 자체를 가장 많이 받게 하는 방식이기 때문에 이게 가능하다. B에서 가장 쌘놈을 뽑아서 A에서 가장쌘놈과 싸우면서 이길수 있는 상대가 나올 때까지 선수를 교체시키면서 싸우면 된다. 조금 생각할 점은 A의 나머지 애들 다..

    [React] Deep Dive 모던 리액트(23) gitHub Action CI

    CI(Continuous Integration) 소프트웨어를 구성하는 코드는 여러 개발자들이 계속해서 기여하게 된다. 이러한 코드의 변화를 관리하는 저장소에서 코드들을 지속적으로 빌드하고 테스트하는 과정을 CI라고한다. 즉 저장소에서 변화가 있을 때마다 전체 소프트웨어의 정합성을 확인하기 위한 작업을 실행해야 한다. 이 과정들은 테스트,빌드,정적 분석, 보안 취약점 분석 등이 있다. 이 CI환경 구축을 위해서 가장 자주사용된 솔루션은 젠킨스였다. 이 젠킨스는 별도 서버를 구축해야 하고 서버안에서도 젠킨스를 설치해야 하며 저장소와 연결하는 작업 등 설치 및 유지보수가 번거롭다는 단점이 있었다. github action을 사용하면 깃헙 저장소와 함께 사용하여 위 작업을 쉽게 할 수 있다. 깃헙에 푸시가 일어..

    [React] Deep Dive 모던 리액트(22) Next.js 개발환경 구축

    create-react-app과 create-next-app은 리액트 애플리케이션과 Next.js 애플리케이션을 손쉽게 만들 수 있는 CLI도구이다. 이번에는 직접 프로젝트 파일들을 하나씩 설정해보며 개발환경에 대해 이해해보자. cra는 2023년 이후 유지보수되지 않을 가능성이 크다고 한다. CRA개발자 팀이 리액트 애플리케이션을 만드는 보일러플레이트가 아닌 리액트 기반 프레임워크를 제안하는 런처 형태로 변경될 예정이라고 한다. create-necxt-app 없이 하나씩 구축해보기 모든 Node.js프로젝트는 package.json을 만드는것으로부터 시작한다. 폴더를 하나 만들고 아래 명령어를 통해서 package.json을 만들어 보자. npm init (단순하게 프로젝트 이름만 설정해주고 나머지는 ..

    [JS] 셔틀버스 (2018 카카오)

    이분탐색을 활용해서 해결하였다. https://school.programmers.co.kr/learn/courses/30/lessons/17678 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 사실 지금생각하면 굳이 이분탐색이 필요할 것 같지는 않고 시뮬레이션을 돌리며 답을 도출해도 될 것 같다. 하지만 시간을 구하는 문제가 나올때 이분탐색을 활용하면 훨신 구조적으로 프로그램을 짤 수 있다. 시간이란 데이터는 항상 정렬되어 있기 때문이다. 이분탐색을 활용하면 문제접근법 자체는 매우 단순해진다. 1. 이분탐색으로 시간 검색 2. 해당 시간에 셔틀을 탈 수 ..