목록내일배움캠프 4기 (132)
A Developing Developer
문제발생 Docker 시도 최종 프로젝트에 Docker 적용 및 공부 해결방안 팀원들과 협의 알게 된 것 Docker : 컨테이너 기반의 오픈소스 가상화 플랫폼, 개발 및 테스트 환경의 구축, 빠른 배포, 확장성 등의 이점을 제공 Docker 사용시 해야할 것 1. wsl 2 를 세팅한다. 2. ubuntu 를 다운 받는다. 3. docker desktop 을 다운 받는다. 4. 코드에 docker 세팅을 한다. (.env, module, .dockerignore, docker-compose.yml, Dockerfile) 5. Dockerfile에서 정의된 이미지를 빌드한다. (이미지를 빌드하는 이유는 서비스를 시작하기 전에 독립적으로 이미지를 만들어 두어야 하기 때문) >>>docker-compse b..
문제발생 최종 프로젝트 중간 결과물 관련 튜터님 예상 기술 면접 질문 타임 시도 - 해결방안 - 알게 된 것 Q1. refresh token을 레디스에 저장함으로서 얻을수 있는 장점은 무엇인가? rt 을 저장하는 장소가 FE 냐 BE 냐로 구분 할 수 있는데, 우선 BE 에 저장할 경우 mySQL과 NoSQL 을 나눠서 저장 할 수 있다. mySQL 에 비해서 NoSQL 인 Redis 에 저장하는 것이 비교적 빠른 엑세스 속도를 제공한다. Q1-1 그렇다면 refresh token 을 왜 레디스 (BE) 에 저장하는가? rt 을 백엔드에 저장하는 이유는 특정인물을 강제로그아웃 시키기 위해서 필요하다. 강제로그아웃 기능이 필요 없을 경우 굳이 rt 을 백엔드에 저장할 필요는 없다. [※ 강제로그아웃 시키기..
문제발생 로그인 시 Local Storage 에 JWT 를 저장하는 방식으로 로그인을 인증했는데, 이때 JWT 에 들어있는 로그인 정보를 가져오는 방법을 모름. 시도 JWT 를 Javascript 에 불러오는 방법 구글링 해결방안 1. LocalStorage 에 저장되어있는 key 값 at 을 가져온다. const token = localStorage.getItem('at'); 2. 가져온 값을 payload 해준다 (실질적인 데이터는 [1] 에 있음) const tokenPayload = token.split('.')[1]; 3. jwt 토큰의 [1] 값을 decode 해준다. const decodedPayload = atob(tokenPayload); 4. decode 한 값을 JSON 문자열을 Ja..
문제발생 - 시도 - 해결방안 - 알게 된 것 - [결론] 오늘 한 것! 1. 개인회원 회원정보 RUD 코드를 참고해서 사업자 회원정보 RUD 작성 2. 업체별 사용자 데이터 불러오기 BE 작성 (진행 중) 오늘은 시간만 많이 들었지 특별한 에러 발생은 없었다.
문제발생 - 파일 업로드 어떻게 하지? 시도 - AWS S3 + Multer 활용 해결방안 - multerOptionsFactory 를 설정하고, .env 에 AWS 접속 정보 주입하고, aws S3 를 사용하기 위한 패키지를 npm 으로 다운받는다. - AWS S3용 스트리밍 멀티 스토리지 엔진 : S3를 호출하는 Multer 스토리지 엔진 문서의 기존 코드 샘플에 대한 통합 부분 npm i @aws-sdk/client-s3 multer-s3 - multer s3 패키지 npm i -D @types/multer-s3 알게 된 것 - AWS 공부하자... [결론] AWS S3 파일 업로드도 팀원의 도움으로 구현은했다. 만... 내걸로 만들 수 있을까? 내배캠에서 지급된 AWS 강의를 참고해서 더 공부해야..
문제발생 nest.js 에서 entity 설정하고 컬럼 추가하는 방법을 모름 시도 팀원들에게 물어봄 해결방안 1. entity 에서 추가 수정할 코드 작성 2. global/config 의 ormConfig.ts 에서 TypeOrmModuleOptions 속성 중 synchronize: false => true 로 변경 3. 서버 실행 테이블 컬럼 변경 완료 알게 된 것 nest.js 에서 entity 를 활용해서 테이블을 생성했다면, entity 를 수정해서 테이블 컬럼을 추가 할 수 있다. [결론] 뭔가 진행은 되는데 아직 백엔드만 어느정도 완료되어서 눈에 보이는게 없다. 내일은 파일 업로드 + 프런트 조금 해보자
문제발생 - 시도 - 해결방안 - 알게 된 것 - Transaction 트랜잭션(Transaction)은 데이터베이스(Database)에서 수행하는 작업의 논리적 단위를 말한다. 트랜잭션은 데이터베이스에서 안전하게 데이터를 관리하기 위한 기능 중 하나이다. 예를 들어, 한 번에 여러 개의 계좌에서 돈을 이체하는 작업을 수행할 때, 이체하는 과정에서 일어나는 문제로 인해 중간에 작업이 멈추게 되면, 일부 계좌에서만 이체가 이루어졌을 가능성이 있다. 이러한 문제를 방지하기 위해 트랜잭션을 사용하여 작업이 완료되거나 모두 취소되도록 하여 데이터 일관성을 유지한다. https://icepri3535.tistory.com/183 Transaction 트랜잭션(Transaction)은 데이터베이스(Database)..
문제발생 - 시도 - 해결방안 - 알게 된 것 - Redis (Remote Dictionary Server) Redis 는 인메모리 데이터 저장소로서, 키-값 구조로 데이터를 저장하고 검색하는 데 사용되는 데이터 구조 서버이다. 특정 데이터 구조를 캐시로 사용하거나, 세션 관리, 메세지 브로커 등으로 사용되는데 적합한 솔루션이다. 주로 웹 애플리케이션에서 세션 관리, 캐싱, 랭킹, 실시간 알림 등에 사용된다. [결론] 역대급 SA 작성이다. 하루 종일 했는데도 아직 마무리 못했다. 팀원들 열정 미친듯.