수업이 어느새 절반이 지나고 2월을 마무리하였습니다. 그 사이에 조원이 바뀌었으며, 이전에 작업했던 도서API 프로젝트의 프런트 부분도 시작을 했습니다. 우선 도서 API 프론트 부분에서 이전에 수업시간과 다르게 백엔드를 설정해 놨기 때문에 타입에러가 발생하여 수업진행이 어려워 백엔드 부분 일부를 수정하는 시간을 가졌습니다. 수업을 100% 똑같이 진행하지 않아도 되지만 주관적으로 코드를 작성하다 보면 앞으로의 수업에도 100% 똑같이 진행을 할 수가 없을 거라는 판단을 했고, 앞으로의 수업에서 최대한 생각을 배재하고 수업을 따라가는 방향으로 진행하고 주관적인 생각을 넣는 것은 개인 프로젝트를 하면서 진행해야겠다 생각했습니다. 또한 도서 API 서버 부분도 기존에 받은 피드백 내용과 더불어 타입스크립트를..
데브코스를 진행한 지 두 달이 지났습니다. 12월에 시작한 도서 API를 시작으로 개인 프로젝트를 주제 선정을 했습니다. 도서 API를 진행하면서 수업진도를 따라가는 게 버거워지고 조금씩 밀리게 됐습니다. 초반에 따라가는데 문제가 없었지만, 백엔드 수업이 끝나고 강사님의 조언대로 기존에 작업한 프로젝트를 조금 더 세분화하는 과정에서 시간이 많이 들게 되었습니다. 일단 문제점은 컨트롤러를 서비스와 모델로 나누면서 생기기 시작했습니다. 수업에서는 컨트롤러에 모든 작업을 진행하였는데요. 이후 분할을 하면서 컨트롤러와 서비스 모델에서 어떤 코드들을 관리하는지, 어떻게 작업을 하는지에 대해서 충분한 설명이 없었습니다. 때문에 검색을 통하여 로직분리를 시행하였는데요. 검색으로만 코드를 분리한 거 기 때문에 제가 짠..
오늘 배운 내용📚 연산자 분기문 (if) 반복문 ( while, for) 👉 정리글 보러가기 이번주에는 기본적으로 많이 사용되는 이론들을 정리하는 시간인 것 같다는 생각이 들었습니다. 다른점이 있다면 javascript가 아닌 c언어로 기본 개념을 정리중이라는 것인데요. 이전 회사에서 제가 후임들한테 하던 이야기가 생각이 났습니다. "javascript, php, python, java 형태만 다르고 기본적인 개념은 똑같으니 다른 언어를 하게 됐다고 해서 무작정 싫어하지 말아라 분명히 도움이 될것이다" 라고 했었는데 그때 조언해준 내용처럼 처음에는 당황스러웠지만 해당 내용들을 다시한번 개념정리한다는 마인드로 수업을 들었습니다. 오늘 수업에서 가장 인상깊었던 내용은 사소한 기능이라도 순서도를 그리라는 말과..
오늘 배운 내용 📚 컴파일 언어와 TypeScript 변수와 상수 그리고 자료형 [C 언어] 입력값을 받기 추가 정리 내용 📑 메모리와 자료구조 엄격한 strict mode 본격적으로 프론트엔드 수업에 들어가기 앞서서 기본적으로 TypeScript와 컴파일언어를 비교하고 JavaScript와 어떤차이점이 존재하는지 짧게 설명을 해주셨습니다. 사실 강의를 듣기 전까지 자바스크립트는 당연히 스크립트 언어니까 컴파일 언어와 완전히 별개의 언어라고 생각을 했었는데, TypeScript가 타입을 설정하는 면에 있어서 컴파일 언어와 유사하니 컴파일 언어를 조금 알아두면 좋을것같다는 말에 다시 생각을 고치게 되었습니다. 또한 변수와 상수를 배우면서 메모리의 자구조에 대해서 살짝 설명해주셨었는데 책으로 보기만한 큐나 ..
오늘 배운 내용 📚 Faker를 이용한 가짜 데이터 생성하기 추가 정리 내용 📑 프로젝트 패키지 구조 오늘 수업에서는 Faker를 이용하여 가짜 데이터를 생성하는것을 배웠습니다. 사용자 뿐만아니라 상품, 기타 등등 정보를 생성할수 있었는데요. 필요한 더미 데이터를 만드는데 있어서 편하게 생성할수 있는 모듈이었습니다. 간단하게 Faker를 이용하여 데이터를 전송하는 API를 만들어 보고나서 강사님이 체크해보면 좋을 리스트를 정리해주셨는데요. 기존 bookstore 프로젝트를 진행하면서 수업시간에 하지 않았지만 참고하면 좋을 리스트를 알려주셨습니다. 인증/인가 시스템 적용 입니다. auth를 통해서 인증/인가를 할수 있는부분들을 짚고 넘어가는것이었습니다. 이는 회원을 받고 이 회원이 어디에 사용되는지를 파악..
오늘 배운 내용 📚 jwt를 이용하여 회원 인증 처리 도서 리스트의 pagination 👉 코드 바로 가기(미연결) 추가 정리 내용 📑 upsert문이란? MSA와 모놀리식 지난 수업에 이어서 기존에 작성한 코드들 중에 인증인가 시스템을 필요로 하는곳에 적용을 하는 시간을 가졌습니다. 그리고 수업을 통해서 기존에 갖고있던 생각을 다른 시선으로 접근할수 있게 됐습니다. 그 예시로 바로 상세 도서 조회에서 유저가 로그인 한경우에 liked가 표기되는 방식이었습니다. 이전에는 백엔드에서는 프론트로 정보를 전달할때 전부 동일하게 전달해주면 그 안에서 프론트가 조건에 맞게 화면을 보여주는거라 생각했습니다. 하지만 오늘 수업을 통해서 백엔드에서 조건을 걸고 프론트로 필요한것만 넘기면 프론트에서는 받은 데이터를 뿌리..
오늘 배운 내용 📚 토큰을 이용하여 사용자 인증 시스템 개발 에러 객체 처리 👉 코드 보러 가기 추가 정리 내용 📑 에러 객체와 try catch 오늘 수업은 전체 적인 기능구현이 끝난 코드에 인증 처리를 하는 것이었습니다. 이전에는 필요한 곳에 Auth 미들웨어를 실행하는 방식으로 진행했던 게 생각나서 이번에도 미들웨어로 만들어서 인증처리를 해보았습니다. 모든 사이트에 인증이 필요한 건 아니지만 기본적으로 인증시스템을 이용하여 처리하고 싶은 부분이 있어서(ex. 로그인 인증이 되어있다면 로그인페이지 접근 시 잘못된 접근입니다. 경고 문구 보내기) 미들웨어를 app.use()를 통해 전체 적용을 하였는데 이때 문제가 발생했습니다. 토큰을 받아올 때 header에 jwt 토큰을 넣어서 테스트를 진행하였는데..
오늘 배운 내용 📚 database 비동기화 FOREIGN_KEY가 존재할 때 데이터 삭제 방법 DELETE, DROP, TRUNCATE 주문하기 완료 👉 코드 바로가기 추가 정리 내용 📑 반정규화 오늘 수업시간에는 database의 비동기화로 시작을 했습니다. database 연결 시에도 시간이 걸리기 때문에 동기 처리를 해주야 하기 때문입니다. 하지만 createConnection의 경우에는 계속 연결을 해야 해서 비동기를 동기처리 해주어야 하지만, createPool의 경우에는 한번 연결해 놓고 pool의 연결을 썼다 끊었다 할 수 있기 때문에 어떠한 이유로 연결을 하는지 궁금해서 공식사이트를 들어가 확인해 봤지만 만족하지 못하고 오히려 비동기 처리를 하기 위해서 조치한 코드 때문에 오히려 동작하지..
오늘 배운 내용 📚 비동기 I/O 비동기 처리 Promise async/await 오늘 수업은 기본적으로 비동기와 비동기 처리에 대해서 진행이 됐습니다. 비동기와 동기의 차이점을 배우는걸로 끝나는게 아니라 추가적으로 블로킹과 논블로킹도 함께 찾아서 공부해보았는데요 블로킹과 논블로킹의 차이로 제어권이 있는지 여부로 파악하는것을 처음 알았고 그냥 다음 코드가 동작이 안되면 블로킹, 동작이 되면 논블로킹이라고 알고있던 제 자신을 살짝 돌아보는 계기가 됐던것같습니다. 그리고 사실 제가 찾아본것도 전부가 아닐거라 생각이 됩니다. 한번에 많은 정보를 넣을수 없으니 조금씩 조금씩 제가 이해한 만큼 정리중입니다. promise는 이전에 혼자 공부할때는 그렇게 머리에 안들어오더니 강사님이 설명을 해주시니 확실히 이해하기..