본문 바로가기

전체 글56

NestJS 환경변수 관리 - process.env보단 ConfigModule을 Express.js를 사용할 땐 Node.js 내장 객체인 process 객체로 환경 변수를 관리했어서 NestJS의 ConfigModule을 접했을 땐 왜 process.env를 두고 ConfigModule을 사용하는 건지 아리송했다. 왜 굳이..? 하지만 굳이 ConfigModule이란 걸 만든 데에는 이유가 있지 않을까 싶어서 개인 블로그 만들기 프로젝트를 하며 이것저것 시도해 보았다. Configuration namespaces(app, db, secret 등으로 세분화해서 관리)까지 적용했다가 현재는 후퇴한 상태다. class에 주입해서 사용하는 거 말고 일반 함수에서는 어떻게 해야 좋을까 고민하다가 일단 process.env로 접근하는 걸로 수정했다. redis 연결 부분을 함수로 export.. 2024. 2. 7.
[javascript | JS] 화살표 함수와 this binding javascript 호출 스택부터 다시 공부하다가 사고회로의 정지를 안겨준 this 먼저 정리하기 일반적으로 this는 가장 가까이 있는 객체를 바인딩한다 하지만 화살표 함수는 자신만의 this를 가지지 않고, 선언된 위치에서 this를 상속한다 (자신의 바깥쪽 스코프에서 this 값을 참조) 호출 시점에 사용된 객체로 this를 바인딩하는 일반 함수와는 달리, 화살표 함수 내에서 사용되는 this는 처음부터 전역객체를 가리키게 된다 const obj1 = { count: 1, increase() { this.count++; } }; obj1.increase(); console.log(obj1.count); // 2 const obj2 = { count: 1, increase: () => { this.c.. 2023. 7. 12.
항해 수료 후 한 달 부트캠프가 끝나고 한 달이 지났다 마지막 지원주차에는 쫓기듯 이력서를 쓰며 첨삭 받고, 공장의 컨베이어 벨트 돌아가듯 돌려지며 이력서를 뿌렸다 몇 개 이상 지원하지 않으면 추후 불이익을 준다는 반협박조에 불편한 마음 가득 안고 장고, 스프링 모집 공고에도 지원을 하며 개수만 겨우 채웠다 가장 만족스러운 주차 같은 건 없지만 가장 불만족스러운 주차는 지원 주차라고 망설임 없이 말할 수 있다 물론 당연히 서류합격이 될리가 없었고 장고, 스프링 공고의 인사담당자분들께 미안할 따름...ㅠㅠ 좋게 말하면 정신없이 흘러갔던 지원 주차가 끝나고 수료를 하였다 미뤘던 약속들을 해치우고 새로운 프로젝트도 시작했고 이력서도 수정하여 다시 몇군데 넣었는데 감사하게도 서류합격을 하기 시작했다 비전공자에 겨우 3개월 과정 부트.. 2022. 11. 17.
이벤트 기반 프로그래밍(event-driven programming) ▼ 이벤트 기반 프로그래밍(event-driven programming)이란? - 이벤트 발생에 의해 프로그램 흐름이 결정되는 프로그래밍 패러다임 이벤트 컴퓨터 용어로서의 이벤트: 컴퓨터 회로를 구동시키기 위해 발생하는 일 마우스 클릭, 키보드 입력, 화면 터치, 센서 출력, 프로그램 로딩 과거에는 모든 프로그램의 흐름을 시간의 흐름대로 순서대로 해석하려는 경향이 있었다 콘솔로 프로그래밍을 할경우에는 사용자의 입력을 받는 타이밍이 있고 인터럽트(일종의 예외)가 발생하더라도 굉장히 소수였다. 즉 흐름을 예측할 수 있었다는 것이고 예측 하지 못하는 예외들은 소수였다는 것이다. 따라서 그냥 일반적으로 순차적으로 코딩을 해도 아무 문제가 없었다. 문제는 현재는 이 흐름이 별로 맞지는 않다는 것이다. 과거에 흐름.. 2022. 10. 11.
[항해99 8기 - 66일차] 어렵다.. 서버 배포 후 어느 정도 오류 수정과 예외 처리를 끝내고.. 계속 마음에 걸렸던 todo 전체 및 상세 조회 부분을 손보기 위해 다시 보는데... 아무리봐도 응답값이 너무.. 비효율적인 것 같다... todo 게시글이 쌓이고 요청이 많아지면서 응답속도가 느려지는 게 보여서 서비스 출시 후에 과연 서버가 견딜 수 있을까...? 하는 걱정이 자꾸 들었다 ec2 프리티어를 써서 느린 건지 기분탓인지 모르겠으니 일단 수정하고 비교해 보자...! [ 상세 조회 - 수정 전 ] todoGet = async (userId, todoId) => { const todoInfo = await Todo.findOne({ where: { todoId }, include: [ChallengedTodo, Comment], });.. 2022. 9. 14.
[항해99 8기 - 55일차] 씐난당 (작성 당일... 임시저장 해놓고 잠들어 버려서... 이제서야 발견해서 올림) 22.09.03 실전 프로젝트 2주차가 되었다 거진 일주일 동안 기획의 늪에 빠진 관계로 api 명세도 어제 겨우 끝냈고 (아직 추가해야할 게 남았지만) DB 테이블도 아쉬운 점이 많아서 수정을 거듭하다 보니 1주차 목표였던 전체 api 구현을 완료하지 못했다 그래서 오늘 만나면 하려고 계획 했던 걸 하나도 못하고 api 구현 마무리 하느라 바빴는데.. 그것들은 다시 게더 타운에서 하면 되는 거니까! 잠 좀 덜 자고... 월화수목금금금을 살자...?! 그리고 아직도 고민인 redis... 회원가입 시 생성되는 이메일 인증번호를 저장하고 시간이 흐르면 자동으로 삭제되게 하려는데 redis가 제격인 거 같아 사용해 보고 싶었다 하.. 2022. 9. 11.