본문 바로가기

전체 글

(121)
[Git] Git rebase와 cherry-pick Git Rebaserebase는 Local 작업물과 Base 브랜치(보통 main 또는 master)를 비교해서 변경된 부분을 자동 병합 또는 수동 병합 할 수 있게 해주는 기능(이해하기 쉽게 master로 설명)merge와의 차이점merge : 두 브랜치를 병합하여 하나의 브랜치로 만드는 과정rebase : 현재 브랜치의 변경 사항을 다른 베이스(commit history)로 이동시키는 것rebase 과정rebase는 말 그대로 베이스를 옮기는 행위쉽게 말해, 내 커밋 히스토리를 master 브랜치의 최신 커밋 뒤에 붙이는 것  1.Master 브랜치에는 여러 커밋 내역이 저장되어 있는 상태. 가장 최근의 커밋(base)을 바탕으로 새 브랜치를 하나 만든다  2.Master 브랜치에도 작업 내역이 쌓이..
[LV2] 마법의 엘리베이터 문제 설명마법의 세계에 사는 민수는 아주 높은 탑에 살고 있습니다. 탑이 너무 높아서 걸어 다니기 힘든 민수는 마법의 엘리베이터를 만들었습니다. 마법의 엘리베이터의 버튼은 특별합니다. 마법의 엘리베이터에는 -1, +1, -10, +10, -100, +100 등과 같이 절댓값이 10c (c ≥ 0 인 정수) 형태인 정수들이 적힌 버튼이 있습니다. 마법의 엘리베이터의 버튼을 누르면 현재 층 수에 버튼에 적혀 있는 값을 더한 층으로 이동하게 됩니다. 단, 엘리베이터가 위치해 있는 층과 버튼의 값을 더한 결과가 0보다 작으면 엘리베이터는 움직이지 않습니다. 민수의 세계에서는 0층이 가장 아래층이며 엘리베이터는 현재 민수가 있는 층에 있습니다.마법의 엘리베이터를 움직이기 위해서 버튼 한 번당 마법의 돌 한 개를 ..
[LV2] 쿼드압축 후 개수 세기 문제 설명0과 1로 이루어진 2n x 2n 크기의 2차원 정수 배열 arr이 있습니다. 당신은 이 arr을 쿼드 트리와 같은 방식으로 압축하고자 합니다. 구체적인 방식은 다음과 같습니다.당신이 압축하고자 하는 특정 영역을 S라고 정의합니다.만약 S 내부에 있는 모든 수가 같은 값이라면, S를 해당 수 하나로 압축시킵니다.그렇지 않다면, S를 정확히 4개의 균일한 정사각형 영역(입출력 예를 참고해주시기 바랍니다.)으로 쪼갠 뒤, 각 정사각형 영역에 대해 같은 방식의 압축을 시도합니다.arr이 매개변수로 주어집니다. 위와 같은 방식으로 arr을 압축했을 때, 배열에 최종적으로 남는 0의 개수와 1의 개수를 배열에 담아서 return 하도록 solution 함수를 완성해주세요.제한사항arr의 행의 개수는 1 ..
[CSS] styled-components의 전역 스타일링 프로젝트를 진행하면서, styled-components에 "전역 스타일링"이라는 기능이 있다는 것을 알게 되었다. 사실 개념만 모르고 있었던 것일 뿐, 그동안 알게 모르게(?) 전역 스타일링을 사용하고 있었는데 이제서야 정식으로 통성명을 하게 된 기념으로 글을 적어보도록 하자. 1. 전역 스타일링이란? 군인이 의무병역을 마치고 전역할 때 멋지게 꾸미고 나오는 것을 말한다 말 그대로 전역(Global) 스타일을 지정하는 것을 말한다. 기존의 styled-components(기니까 sc로 줄여 말하겠다)는 한 페이지에서 작성한 뒤, 해당 페이지에서만 사용했었다. App.js에 정의한 컴포넌트는 상위 컴포넌트에서든, 하위 컴포넌트에서든 사용할 수 없고, 오직 App.js 안에서만 사용 가능했다는 말이었다. 하..
[API] 네이버 검색 API 사용하기 프로젝트 진행 중 뉴스 검색 파트를 맡게 되어 네이버 API를 사용해 보았다. 국내 최고의 IT 기업답게 API 설명서가 매우 잘 작성되어 있었고, APP 등록이나 키 발급도 별도의 복잡한 과정 없이 마칠 수 있었다. 1. API 이용 신청 어플리케이션 등록을 마쳤다면, 어플리케이션 정보에서 ID와 비밀키를 발급받은 것을 확인 할 수 있다. AW와 다르게 네이버는 키를 상시로 확인 가능하니 다른 곳에 무조건 적어둘 필요는 없다. 어플리케이션 등록을 마쳤다면, 어플리케이션 정보에서 ID와 비밀키를 발급받은 것을 확인 할 수 있다. AW와 다르게 네이버는 키를 상시로 확인 가능하니 다른 곳에 무조건 적어둘 필요는 없다. 다만, React에서 사용할 때는 보안 이슈 방지를 위해 .env 파일에 저장해 두자. ..
[LV2] 의상 문제 설명코니는 매일 다른 옷을 조합하여 입는것을 좋아합니다.예를 들어 코니가 가진 옷이 아래와 같고, 오늘 코니가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야합니다.코니는 각 종류별로 최대 1가지 의상만 착용할 수 있습니다. 예를 들어 위 예시의 경우 동그란 안경과 검정 선글라스를 동시에 착용할 수는 없습니다.착용한 의상의 일부가 겹치더라도, 다른 의상이 겹치지 않거나, 혹은 의상을 추가로 더 착용한 경우에는 서로 다른 방법으로 옷을 착용한 것으로 계산합니다.코니는 하루에 최소 한 개의 의상은 입습니다.코니가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 ..
[AWS] AWS S3를 이용해 데이터 통신하기 최근 프로젝트를 리팩토링하면서 서버가 죽어버려 데이터 통신 기능을 사용하지 못하게 된 적이 있다. 서버 개발자 분과 연락을 해봤지만, 해주신다고 해놓고 그대로 잠수를 타셔 상당히 당황스러웠다. 내가 필요로 했던 서비스는 데이터 저장이 가능해야 한다 CRUD 기능을 지원해야 한다 React 개발 환경에서 접근이 가능해야 한다 이 3가지 조건을 모두 만족하는 서비스였는데,..,,.,GPT로부터 AWS의 S3 버킷을 이용해보는 것이 어떻냐는 제안(?)을 받고 사용해 보게 되었다. 결과는? 대만족. 급하게 서버를 구축해야 하거나, 아주아주 간단한 데이터 통신만이 필요한 개발자들에게는 아주 쏠쏠한 서비스인 것 같아 한번 소개해보려 한다. 나는 npm 유저이고, 요즘 TypeScript를 공부하고 있기 때문에, n..
[LV2] 영어 끝말잇기 문제 설명1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다.1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다.마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다.앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다.이전에 등장했던 단어는 사용할 수 없습니다.한 글자인 단어는 인정되지 않습니다.다음은 3명이 끝말잇기를 하는 상황을 나타냅니다.tank → kick → know → wheel → land → dream → mother → robot → tank위 끝말잇기는 다음과 같이 진행됩니다.1번 사람이 자신의 첫 번째 차례에 tank를 말합니다.2번 사람이 자신의 첫 번째 차례에 kick을 말합니다...