목록~2022 작성 글 (113)
상권's
앞 서 TIL 73에서 Swagger에 대해서 간단하게 알아봤었습니다. 이후에 학습하면서 남은 부분 구현을 진행했는데, 아직은 부족하긴 하지만 큰 틀을 완성해서 과정을 기록해보려고 합니다. 현재 진행 중인 개인 프로젝트가 로그인 후 AccessToken을 응답결과로 넘겨주고, 이 값을 Authorization 헤더에 넣어 인증을 하는 과정을 거치고 있습니다. 근데 Swagger에서 Authrization 헤더를 추가하는 데에 문제가 발생했습니다. 일단은 그 부분은 제외하고 파라미터나 쿼리, 요청 바디, 응답 결과에 대해서는 각 API 별로 완성을 했습니다. 위의 사진은 localhost:4000/api-docs에 접속했을 때 확인할 수 있는 API Document입니다. 아래는 Swagger에서 쿼리와 ..
지난 주는 면접 일정이 잡히면서 면접 준비하고 서울도 갔다오고, 개인적인 볼 일로 조금 바쁘게 지냈습니다. 이번 주부터는 데이터베이스나 네트워크 학습 내용이나 개인 프로젝트 하면서 맞이하는 에러들을 열심히 올려보도록 하겠습니다. 현재 The Menu 개인프로젝트는 서버 1차 완성하고 클라이언트 진행 중에 있습니다. css보단 기능적인 부분 완성을 우선으로 하고 있으며, 회원가입, 로그인, 메뉴 설문은 1차 완성 후 다음 작업으로 카카오 지도와 로그인 그리고 메뉴 데이터 생성 중에 고민하고 있습니다. 이번에 react-router-dom을 오랜만에 사용하면서 v6로 업데이트된 부분을 학습하면서 구현했습니다. 사실 섹션 3 ha 이후에 클라이언트 부분은 팀원들과 같이 오류 해결할 때말고는 클라이언트를 자세하..
오늘은 앞 선 TIL 72 (클래스)를 학습하면서 나왔던 this에 대해서 학습해보았습니다. 코드스테이츠를 수료하면서 함수형 프로그래밍을 집중적으로 학습하다보니 this를 이용한 경험은 많이 없었습니다. 단순히 객체지향으로 프로그래밍을 할 때 이렇게 내부의 값을 호출한다? 이정로도 학습만 하고 넘어갔었습니다. 취직을 한다면 언제 어디서 class로 구현한 코드를 볼지 몰라서 수료 이후에 객체형 프로그래밍에 대해서도 꾸준히 학습하고 있습니다. 먼저 this는 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수입니다. this를 통해 자신이 속한 객체 또는 자신이 생성할 인스턴스의 프로퍼티나 메서드를 참조할 수 있습니다. 이러한 this 바인딩은 함수 호출 방식에 따라 동적으로 결정됩니..
[nodemon] Internal watch failed: ENOSPC: System limit for number of file watchers reached, ~~ 이번에 노드를 사용해서 서버를 구현하던 중 위의 에러를 맞이했습니다. 코드스테이츠를 수강하고 지금까지 8개월동안 처음은 본 에러였습니다. 파일에 접근하는 사용자의 수에 제한이 걸려있는 것 같은데 코드에서 해결할 수 있는 문제가 아닌 거 같아 stackoverflow에서 검색해보았습니다. When nodemon tries to watch large numbers of directories for changes it has to create several watches, which can surpass that limit. nodemon은 많..
What Is Swagger? 출처 Swagger is a set of open-source tools built around the OpenAPI Specification that can help you design, build, document and consume REST APIs. Swagger는 OpenAPI 사양에 따라 구축된 오픈 소스 도구 세트입니다. REST API의 설계, 구축, 문서화 및 사용을 지원합니다. 공식 페이지에서는 Swagger를 다음과 같이 설명하고 있습니다. 위키백과에서는 다음과 같이 표현합니다. 출처 스웨거(Swagger)는 개발자가 REST 웹 서비스를 설계, 빌드, 문서화, 소비하는 일을 도와주는 대형 도구 생태계의 지원을 받는 오픈 소스 소프트웨어 프레임워크이다...
지난 주에 한 회사의 인턴에 지원하기 위해 자판기 로직을 자바스크립트 코드나 수도코드로 구현하는 과제를 수행했습니다. 저는 코드스테이츠를 수료하면서 처음부터 함수형 프로그래밍을 집중적으로 학습하고 클래스 기반 객체지향 프로그래밍은 아주 간단하게 학습했습니다. 그래서 자연스럽게 함수형으로 과제를 진행했는데 코딩 테스트나 알고리즘처럼 특정한 인수를 넣고 값을 기대하는 것이 아니라 동전을 넣고 음료를 선택하거나 반환을 받거나 등 절차를 밟을 수 있는 코드를 구현하고 싶었습니다. 아직 배움이 부족해서인지 함수형으로 구현하는 것이 쉽지 않아서 class를 이용해서 로직을 구현했습니다. 다행스럽게도 학습했던 경험으로 나름 괜찮게 구현했었습니다. 그래서 이 기회를 통해 클래스를 정리하는 시간을 가져봤습니다. 먼저, ..
오늘은 쉽지만 복잡한 함수에 대해서 깊이 있게 알아보도록 하겠습니다. 저는 함수에 대해서 머릿속으로 이해는 하고 있지만 정확하게 표현하는 것이 쉽지 않았던 것 같습니다. 그래서 이 기회를 통해서 저만의 언어로 표현할 수 있도록 내용을 정리했습니다. 자바스크립트에서 함수를 이용하는 이유는 다음과 같습니다. 첫째, 동일한 작업을 반복적으로 수행할 경우 중복적으로 코드를 구현하는 것이 아니라 함수를 호출함으로써 코드의 재사용이 가능합니다. 둘째, 중복된 코드를 수정할 경우, 코드 수정 시간이 증가하고 실수가 발생할 가능성이 높아집니다. 코드의 중복을 억제함으로써 유지보수의 편의성을 높이고 실수를 줄여 코드의 신뢰성을 높일 수 있습니다. 셋째, 적절한 함수 이름을 이용한다면 함수의 내부 코드를 이해하지 않고도 ..
오늘은 ES8에서 도입된 async/await에 대해서 알아보겠습니다. 코드스테이츠 수강 당시에 async/await에 대해서 단순히 '프로미스를 동기적으로 처리할 수 있다.' 이렇게만 기억하고 사용했습니다. 사실 딱 저렇게 표현하는 게 정확한 거 같지만 조금 더 추가적으로 학습해보도록 하겠습니다. async/await은 프로미스를 기반으로 동작합니다. async/await를 사용하면 프로미스의 then/catch/finally 후속 처리 메서드 없이 마치 동기 처리처럼 프로미스가 처리 결과를 반환하도록 구현할 수 있습니다. await 키워드는 반드시 async 함수 내부에서 사용해야 합니다. async 키워를 사용해 async 함수를 정의하면 언제나 프로미스를 반환합니다. 명시적으로 프로미스를 반환하지..