본문 바로가기

코드스테이츠/일일 정리83

4/10 일일정리 기술면접 준비 Section4에서 배운 내용을 바탕으로 기술면접 준비를 하는 시간을 가졌다. 1. Hoisting과 Temporal Dead Zone이 어떻게 연관되어 있는지 설명하세요. Temporal Dead Zone이란 let이나 const로 변수를 선언할 때 값 할당 이전에 접근할 수 없는 영역을 의미합니다. Javascript에서 변수는 Hoisting이 되어 코드가 실행되기 이전에 환경 레코드에 등록되는데 var 키워드로 선언한 변수는 등록과 동시에 초기화가 되기 때문에 바로 접근이 가능합니다. 하지만 let과 const로 선언한 변수 같은 경우 Hoisting은 되지만 초기화가 되지 않기 때문에 선언문을 만나기 이전까지는 접근할 수 없습니다. 이렇게 코드의 첫 부분부터 선언문을 만나기 이전까지 let과 c.. 2023. 4. 10.
4/7 일일정리 CRUD가 동작하는 Todo앱 만들기 TodoList 만들기 저번달에 Figma로 기획해본 TodoList 앱을 만들어보는 시간을 가졌다. Figma Mockup https://www.figma.com/proto/8f2QQsx7jzWjVZxxSgnxsF/TodoList?node-id=1-150&starting-point-node-id=1%3A150 Figma Created with Figma www.figma.com GitHub Repository https://github.com/kimsh322/todolist-ts GitHub - kimsh322/todolist-ts Contribute to kimsh322/todolist-ts development by creating an account on GitHub. github.com 나같은 .. 2023. 4. 7.
4/6 일일정리 알고리즘(순열/조합,GCD/LCM, 멱집합) 순열과 조합 순열(Permutation) 순열은 서로 다른 n개의 원소를 가지는 어떤 집합에서 중복 없이 순서 상관 '있게' r개이 원소를 선택하거나 나열하는것이다. n개의 원소로 이루어진 집합에서 r개의 원소로 이루어진 부분집합을 만드는 것과 비슷하다. Javascript 순열 코드 예시 가위바위보 게임을 할 때 한 사람이 낼수있는 모든 경우의 수를 구하는 함수 function rockPaperScissors (n=3) {// 가위바위보 몇 번 할지 입력받음 let arr = ['rock','paper','scissors'] let result = [];// 리턴할 배열 let newArr = [];// 각각의 경우의 수 const func = (num) => { if(num >= n) { // 횟수가.. 2023. 4. 6.
4/5 일일정리 알고리즘 Greedy,구현,DP Greedy Algorithm 그리디(탐욕) 알고리즘은 선택의 순간에 눈앞의 가장 최적인 상황을 고르면서 해답에 도달하는 방법이다. 그리디 알고리즘을 사용하면 매 선택이 그 순간에 대해서는 최적이지만 그걸 종합적으로 봤을 땐 최적이라는 보장은 없다는 것을 명심해야 한다. 그리디 알고리즘은 부분의 최적해들의 집합이 곧 전체 문제의 해답이 될 때 사용할 수 있다. Greedy Algorithm 문제 해결 단계 ⓵ 선택 절차 : 현재 상태에서의 최적의 해답을 선택한다. ⓶ 적절성 검사 : 선택된 해가 문제의 조건을 만족하는지 검사한다. ⓷ 해답 검사 : 원래의 문제가 해결되었는지 검사하고, 해결되지 않았다면 선택 절차로 돌아가 위 과정을 반복한다. Greedy Algorithm의 특징 그리디 알고리즘은 앞의 .. 2023. 4. 5.
4/4 일일정리 Proxy CORS(Cross Origin Resource Sharing) 일반적으로 다른 도메인에 API 요청을 하면 CORS 에러가 발생한다. CORS(Cross Origin Resource Sharing) 정책은 다른 도메인에서의 혹시나 모를 악의적 접근을 방지하기 위한 정책이다. 보안상 중요한 정책이지만 클라이언트에서 매번 요청을 할 때 마다 헤더를 입력해줘야 하기 때문에 약간의 불편함이 있다. Proxy Proxy 기능을 사용하면 클라이언트에서 브라우저를 거쳐 서버로 요청하는것이 아니라 Proxy서버를 거쳐서 바로 서버로 요청을 보낼 수 있다. 별도의 응답 헤더를 받을 필요 없이 브라우저는 React 앱으로 데이터를 요청하고, 해당 요청을 백엔드로 전달하게 되고 여기서 React 앱이 서버로부터 받은 응답.. 2023. 4. 4.
4/3 일일정리 CI/CD CI / CD CI(Continuous Integration) CI는 개발자를 위한 자동화 프로세스인 지속적 통합(Continuous Integration)을 의미한다. CI를 성공적으로 구현하면 애플리케이션에 대한 새로운 코드 변경 사항이 자동으로 빌드 및 테스트되어 공유 레포지토리에 통합된다. CI를 통해 코드 변경 사항을 공유 브랜치로 다시 병합하는 작업을 더욱 수월하게 자주 수행할 수 있다. 개발자가 애플리케이션에 적용한 변경 사항이 병합되면 이러한 변경 사항이 애플리케이션을 손상시키지 않도록 자동으로 애플리케이션을 구축하고 각기 다른 레벨의 자동화된 테스트 실행을 통해 변경 사항이 애플리케이션에 제대로 적용되었는지 확인한다. 자동화된 테스트에서 기존 코드와 신규 코드 간의 충돌이 발견되면 CI를.. 2023. 4. 3.