본문 바로가기

부트캠프 개발일기123

87일차: Pre-Project Day 7(JWT 로그인 기능 구현) 오늘은 로그인 기능과 관련된 내용을 작성하였다. JWT 관련 내용도 포함되어있어서 복습해야하는 내용이 꽤 많았는데 코드를 작성하면서 헷갈렸던 부분이 좀 더 명확해진 느낌이다. 먼저 JWT에 대해 다시 한번 정리를 해보면 JWT란 JSON Web Token의 약자로 JSON 포맷의 토큰 정보를 인코딩하고, 인코딩된 토큰 정보를 Secret Key로 서명한 것을 Web Token으로 사용하는 것을 말한다. (흐름을 "정보 -> 인코딩 -> 서명"으로 이해할 수 있다.) Access Token과 Refresh Token으로 구분되는데 Access Token은 실제로 권한을 얻는데 사용하는 토큰이며 Refresh Token은 Access Token의 유효기간이 만료됐을 때 새로운 Access Token을 발급받.. 2023. 6. 19.
86일차: Pre-Project Day 6 (회원가입 기능 구현, 암호화) Spring Initializr를 통해 JPA, Security, Web, Lombok, H2를 셋팅해두었다. 초기 셋팅을 마무리하고 각자 branch를 구분해서 맡은 부분을 작성하기 시작했다. 내가 맡은 부분은 회원정보와 관련된 것으로, 회원 가입 / 로그인 / 로그아웃을 구현하기로 했다. 회원가입 -> 로그인 -> 로그아웃 순서대로 진행 하기로 하고 구조를 잡아보았다. 우선은 H2를 사용하기로 해서 application.yml 파일에 관련 내용(콘솔사용, 테이블 생성 등)을 설정해두고 작업을 시작했다. [회원가입 기능 구현] 1. MemberController: 클라이언트 HTTP 요청을 받는 부분이다. POST 메서드를 받는다. 회원가입이므로 엔드포인트는 /singup으로 설정하였다. DTO 객체를.. 2023. 6. 16.
85일차: Pre-Project Day 5 (이슈 설정, 역할 분담) 어제까지 정리했던 사용자 요구사항 정의서 내용을 바탕으로 프론트엔드 / 백엔드로 구분해서 이슈를 설정하고 칸반보드를 작성했다. 우선순위(중요도)에 따라서 이슈를 구분하고나니 무엇부터 해야할지, 어떻게 진행해야할지 어느정도 흐름은 보이는것같다. 백엔드 업무분장을 할 때 [API / 보안 및 인증 / 서버 및 배포] 이렇게 기능별로 나누는 것이 좋을지, 아니면 비즈니스 로직들을 도메인에 따라 [회원 / 질문 / 답변] 으로 나누는게 좋을지 이야기를 했다. 실제 업무였다면 첫번째 방법으로 진행하는것이 전문성을 갖추기에는 좋을것같다는 생각이 들었으나 학습하는 입장에서는 작은 단위로 쪼개 여러가지를 경험하는것이 좋을것같다고 의견이 모아졌다. 그리고 어려운 부분이나 겹치는 부분에 대해서는 같이 얘기하면서 구현해보기.. 2023. 6. 15.
84일차: Pre-Project Day 4 (사용자 요구사항 정의서, ERD) 팀원들과 회의를 시작하기에 앞서 클론 과제인 스택오버플로우 사이트를 찾아보고 어떤 기능들이 있는지, 내가 구현할 수 있는 기능은 어떤 것들이 있을지 생각해 보았다. 먼저 요구사항을 큰 기능 단위로 나누고 세부적인 기능들로 구분하였다. 프론트엔드 부분은 어떤 기능이 구현 가능한지, 어떤 식으로 구분하는 것이 좋은지 판단할 수 없어서 해당 부분은 제외했다. 회의를 통해 서로 할 수 있는 부분, 하고 싶은 부분에 대해 얘기해서 매칭되는 부분을 위주로 진행해야 할 것 같다. 요구사항ID 요구사항명 세부기능ID 세부기능명 상세설명 우선순위 비고 PP-01 멤버십 PP-01-M-01 회원가입 아이디와 비밀번호를 입력받아 회원가입 요청 처리 1 아이디 / 비밀번호 유효성 검증 PP-01 멤버십 PP-.. 2023. 6. 14.
83일차: Pre-Project Day 3 (프로젝트 관리) 프로젝트의 기획부터 구현, 배포 및 테스트까지의 전반적인 흐름에 대해 학습하였다. 이때까지 진행되었던 학습은 코드 작성에 중점을 두었기 때문에 기획, 분석, 설계 단계 없이 바로 구현만 진행했는데 프로젝트부터는 직접 어떤 기능이 필요할지 생각해보고 일정과 개발 단계를 관리해야하기때문에 프로젝트를 관리법 또한 잘 알아야한다. ❯ 비즈니스 관점에서의 개발 프로젝트 과업 발생: 수행해야할 프로젝트가 발생한다. 이 때 회사 내부에서 자체적으로 해결할 수 있겠지만 필요한 경우 다른 업체에게 프로젝트를 위탁할수도 있다. 사업자 선정 및 계약: 외부 업체에 발주를 진행할 경우 위탁 업체에게 RFP(Request For Proposal, 제안 요청서)를 요청할 수 있다. RFP를 통해 적절한 제안을 제시한 업체를 선정.. 2023. 6. 13.
82일차: Pre-Project Day 2 (GitHub 다루기) 팀을 이루어 하나의 프로젝트를 진행할 때 중요한 부분 중 일정 및 업무 관리, 코드 이력 관리가 있다. 오늘은 그 방법에 대해 학습하였다. ❯ GitHub Repository 이미 여러 학습을 하면서 레포지토리를 생성해보기도 하고 다른 레포지토리를 Fork 하기도 하고 Push, Pull, PR 하면서 실습을 진행했다. 레포지토리에서 실질적인 코드 뿐만 아니라 여러 파일들을 확인할 수 있었는데, 이때까지는 크게 수정할일이 없었지만 프로젝트부터는 해당 파일들을 관리하는 것 또한 수행해야 할 내용 중 하나이다. README.md: 마크다운 문법을 통해 작성할 수 있으며 다른 사용자나 개발자가 해당 프로젝트를 사용/이해하는데 도움 되는 내용을 제공한다. .gitignore: git을 통해 관리하지 않는 파일을.. 2023. 6. 12.