본문 바로가기

Daily89

210207_TIL 🍎 오늘 한 일✔️ Toy 복기 지난주에 풀었던 토이 다섯문제를 복습했다. 테스트를 통과시키고 나면 다시 안보고 넘어갔는데 오늘 다시한번씩 보면서 순서도도 그림으로 그려보고 주석도 달아봤다. 가장 크게 느낀점은 변수명을 잘 좀 지어두자는 것.. 그래야 나중에 내가봐도 바로 알아볼 수 있을 것 같다ㅎ 다른 분들의 코드도 보면서 놓쳤던 부분은 없는지, 좀 더 효율적인 코드로 개선해볼 수는 없는지도 생각해보았다. ( + 메모이제이션을 활용해서 고쳐보기..! ) ✔️ CommonJS JavaScript를 브라우저에서뿐만 아니라, 서버사이드 application이나 데스크톱 application에서도 사용하기 위한 노력의 결과이다. 범용적으로 쓰이기 위해서는 '모듈화'가 핵심적이다. 모듈화는 세 가지 조건이 만족.. 2021. 2. 8.
210206_TIL 🍎 오늘 한 일✔️ CORS 정리 CORS에 요청방법이 세 가지가 있는데, Preflight Request, Simple Request, Credential Request 이렇게 나뉜다. 각각에 조건들이 있어서 그 부분에 대해 정리했다. 특히 CORS를 판단하는 시점이 중요하다고 느껴졌는데, 판단 + 응답 파기 여부는 브라우저가 결정 하기 때문에, 요청의 실패나 성공에 상관없이 그 이후에 CORS 위반 여부가 판단된다. 이 점은 테스트를 해보면서 직접 확인할 수 있었다. ✔️ CORS 테스트 클라이언트랑 서버를 분리해서 CORS와 관련된 테스트들을 해봤다. 포트번호가 동일할 때와 다를 때, Allow-Control-Allow-Origin 값을 * 로 했을 때와 origin으로 설정했을 때, 요청시 헤더 .. 2021. 2. 7.
210205_TIL 🍎 오늘 한 일 ✔️ node.js로 웹서버 만들기 node.js에서 http 모듈을 이용해 웹서버를 만들었다. HTTP 트랜잭션 해부라는 가이드가 있어서 처음부터 정독해보고 코드를 하나씩 따라쳐보기도 했다. 일단 무작정 따라해보고 어떤 변화가 있는지 살펴보다 보니까 글로 볼 때보다 어떤식으로 돌아가는건지, request객체와 response 객체가 어떤식으로 작동하는지 더 바로 알 수 있었다. 웹서버를 만들고, 클라이언트 부분에서 보낸 POST 요청을 받으면 body부분을 적절히 변환해 다시 body에 담아 응답을 돌려주는게 전체적인 구조였는데 OPTIONS메서드에 따른(preflight request) 응답부분도 따로 작성해보니까 개념으로만 봐서 뭔가 추상적으로 느껴졌던 CORS를 구체적이고 명확하게.. 2021. 2. 6.
210204_TIL 🍎 오늘 한 일 ✔️ CORS, Browser Security Model 네트워크와 관련된 개념들을 배웠는데, 처음 전송되는 도메인과 다른 도메인이 리소스 요청을 했을 때 CORS에 의해 요청된다는 것을 알게되었다. 간단한 흐름을 살펴보면, 서버는 요청에 대해 응답을 할 때 헤더의 Access-Control-Allow-Origin의 값으로 리소스 접근이 허용된 출처를 갖고 브라우저는 이후에 자기가 보낸 요청과 서버의 응답을 비교해 유효성을 판단하게 된다. 이런 CORS는 세가지 상황에 따라 동작하는 방식이 바뀐다.첫번째는 Preflight 요청인데, OPTIONS 메서드를 사용해 브라우저가 본격적인 요청을 보내기 전, 어떤 메서드를 사용할 수 있는지 파악하는 요청이다. 두번째는 일반적인 요청인 Simpl.. 2021. 2. 5.
210203_TIL 🍎 오늘 한 일✔️ 서버 관련 개념 공부 서버와 클라이언트가 어떤 식으로 통신하는 지 자세하게 배웠다. 특히 통신을 위해 사용하는 HTTP 프로토콜에 대해 좀 더 공부를 공부했는데, 개발자 도구의 Network 부분을 보며 요청에 따라 어떤식으로 변하는지를 살펴보기도 했다. 네트워크가 이루어지는 과정을 해부해보는 느낌이라 재밌었다.. ✔️ 채팅앱(CODEPLE) 만들기 서버를 본격적으로 활용해보기 위한 출발점으로 채팅 앱의 클라이언트 부분을 만들어보았다. fetch API를 활용해 GET 요청을 통해 데이터를 받아오고, POST요청을 통해 새로 만든 데이터를 서버로 보내기도 했다. 파라미터 지정을 통해 필터링 하고싶은 객체만 따로 받아와 화면에 로딩하도록 해서 필터링을 구현해보기도 했다. fetch AP.. 2021. 2. 4.
210202_TIL 🍎 오늘 한 것 ✔️ toy - 스도쿠 스도쿠 답을 구하는 문제를 풀었는데 역대급 오래잡고있던 문제인 것 같다. 기본적인 아이디어는 boolean값들을 9개의 인덱스를 가진 체크용 배열에 넣어두고, 해당 숫자가 존재하는 열/행/3*3 영역에 있는 모든 숫자들을 배열에서 false로 바꿔주고, true인 인덱스값만 하나씩 넣어보며 확인하는 것이었다. 엔퀸즈랑 비슷하게 접근했던 것 같은데, 아직 재귀함수를 쓰면서 탈출조건을 작성하는게 미숙한 것 같다고 느껴졌다. ✔️ Event Loop 자바스크립트의 큰 특징 중 하나는 '싱글안스레드' 기반의 언어라는 점이다. 호출녕스택이 하나라, 동시에 하나의 작업만을 처리할 수 있다라는 말이다. 그런데 동작하는걸 보면 여러 작업이 동시에 처리되기도 한다는 걸 볼 수 있다.. 2021. 2. 3.
210201_TIL 🍎 오늘 한 일✔️ Promise 기존의 비동기 처리의 콜백헬이나 오류 처리 같은 문제를 해결하는데 유용한 Promise에 대해 배웠다. Promise 체이닝, promise.all 등을 써가며 프로미스를 기본적으로 어떻게 사용하는 지 먼저 익혔다. 그리고 fetch 메서드를 통해 뉴스와 날씨 정보를 가져와보기도 했다. 전에 날씨APP을 만들 때 써보긴 했었는데 애매하게 알고 있다는 느낌이 들었는데 이제야 확실히 알게된 것 같다. ✔️ Toy- tiling 타일을 일정 크기의 바닥에 몇 가지 방법으로 깔 수 있는지 경우의 수를 세는 문제를 풀었다. 말 그대로 조합으로 규칙을 찾아 경우의 수를 구하는 방식으로 풀 수 있었다. 재귀를 사용해 풀었다고 하시는 분들도 계셔서 재귀로도 다시 풀어보고, 좀 더 최적.. 2021. 2. 2.
210129_TIL 🍎 오늘 한 일 ✔️ Javascript 복습 솔로 데이동안 자바스크립트 개념들에 대해 좀 더 확실히 공부하려고 책을 한권 샀었는데 그 동안 배웠던 부분들을 쭉 다시 한번씩 정리해봤다. 일단 목차를 보니 전반적인 개념들을 대부분 익힌 상태여서, 빠르게 읽어보면서 부족한 부분만 파악해 그 부분만 집중적으로 공부할 수 있었다. 정말 기본적인 자바스크립트 개발 환경이나 ECMAScript 부분도 예전엔 그냥 대충읽고 넘어갔는데 조금 아는게 생기고 나서 보니까 재밌게(?) 읽을 수 있었다. 데이터 타입, 연산자, 제어문, 타입 변환과 단축 평가, Primitive Type과 Reference Type의 차이점도 메모리에서 어떤식으로 동작하는지 보면서 좀 더 정확하게 알게된 것 같다. Javascript의 객체 .. 2021. 1. 30.
210128_TIL 🍎 오늘 한 일 ✔️ Toy - isSubsetOf (부분집합 여부 판단) 두 배열이 주어지고, 한 배열이 나머지 배열의 부분집합인지 여부를 판단하는 문제를 풀었다. while문 내부에 if문을 사용해서, 인덱스를 비교하며 결과에 따라 인덱스를 다르게 증가시키거나 결과를 리턴하는 방식으로 해결할 수 있었다. 오늘도 모각코에서 서로 코드리뷰를 해주기로 해서 다른분들의 코드를 볼 수 있었는데, 네 명밖에 없었는데도 각자 코드가 엄청 달랐다. 이중 for문으로 해결하신 분도 있었고, 이중 for문으로 풀었던 문제를 내부에 함수를 선언해 for문을 두개로 쪼개는 방식으로 시간복잡도를 줄이신 분도 있었고, label을 활용해 반복문을 제어하는 방식으로 푸신 분도 있었다..! ✔️ Node.js 더 알아보기 Nod.. 2021. 1. 29.
210127_TIL 🍎 오늘 한 일✔️ HA 문제풀기 자료 구조부터 클래스, 상속, 재귀까지 온갖 것들이 섞여있는 문제들을 풀면서 이머시브 한달동안 배운 것들을 제대로 복습할 수 있었다. 구조분해할당이나 pseudoclassical하게 상속을 구현하는 방법 같이 평소에 많이 안써서 까먹을 뻔했던 것들을 다시한번 떠올려볼 수 있었다. 🍎 기억할 것✔️ JSON JSON은 함수, Symbol을 파싱하지 못한다! 🍎 더 공부할 것✔️ N-Queens 레퍼런스 분석 정리 ✔️ 재귀 문제 풀기 2021. 1. 28.
210126_TIL 🍎 오늘 한 일 ✔️ Toy - fibonacci 처음에 조건을 안보고 반복문을 사용해서 풀었었는데 반복문 없이 재귀함수만으로 구현해야한다는 조건을 뒤늦게 보고 처음부터 다시 풀기 시작했다. 시간 조건도 O(n)이었는데, 함수안에 따로 재귀함수를 만드는 방식으로 메모이제이션과 재귀를 이용해 해결할 수 있었다. ✔️ N-Queens 원래는 재귀를 이용해서 풀었었는데 페어분과 스택으로도 구현해보았다. 재귀를 사용하지 않으면 백트래킹을 하기 위해 이전 단계를 기록해두는 작업이 필요했는데 이 부분이 가장 헷갈렸던 것 같다. 세션을 들으면서는 결국 결과는 데칼코마니처럼 대칭되는 구조로 나오기 때문에 절반만 확인하면 된다는 말을 듣고 아차싶기도 했다. 내일 HA 끝나면 레퍼런스 코드와 비교해보면서 부족한 점도 보완.. 2021. 1. 27.
210125_TIL 🍎 오늘 한 일 ✔️ Toy 문제 풀기 (rockPaperScissors) 재귀에 이제 좀 익숙해졌나 싶었는데 막상 또 문제를 만나보니까 쉽게 풀리지 않았다. 수도코드를 작성하고 차근차근 푸는 습관을 들여야하는데 생각보다 잘 안되는 것 같아서 풀었던 문제들의 코드를 반대로 수도코드로 바꿔보거나 주석을 달아보며 연습 중이다. ✔️ N-Queens 문제 풀기 DFS, 백트래킹을 이용해 해결파야하는 N Queens 문제를 풀었다. 일단은 주어진 파일에 있는 메서드들과 속성이 어떤 걸 의미하는 지 파악하는 것이 가장 핵심이었던 것 같다. 그리고 문제를 전체적인 관점에서 먼저 생각하고 하나씩 쪼개며 조건을 추가하는게 중요하다는 것도 느꼈다. 개념 설명만 읽어봤을 때는 백트래킹이 뭔지 감도 잘 안오고 이름만 보고 .. 2021. 1. 26.
반응형