Lv0. API 명세 및 ERD, SQL 작성
API 명세서 작성하기
-프로젝트 root(최상위) 경로의 README.md에 작성
-Postman 설치 후 작성
-request 및 response 는 json 형태로 작성
1. Create Collection (원하는 프로젝트 이름 적기) → Add folder(폴더 생성) → 필요한 폴더 만들기
-Schedule, User 폴더 생성함
-user 폴더는 일단 필요없다고 해서 생략
2. 가상 서버 생성 → Mock servers
-왼쪽 밑에 + 눌러서 Mock servers를 켜준 다음 Create mock server 클릭
-Select an existing collection 을 선택해서 위에서 만든 collection 선택 후 Next
-Mock Server Name에 원하는 서버 이름 작성, 밑에 체크하기 → Create Mock Server 하면 서버 생성됨
-이 주소 값 복사해서 사용하면 됨
3. Schedule 폴더에 필요한 request 넣기
-일정생성 : POST
-일정 1개 조회 : GET
-일정 전체 조회 : GET
-일정 수정 : PUT
-일정 삭제 : DELETE
<피드백 받기 전> - 중복되는 피드백은 수정 후 작성
-일정 생성 피드백
- restful 규칙을 지키기 위해 대문자 대신 소문자 사용하고, 복수형으로 사용 →schedules, users로 변경
- 1번과 마찬가지로 restful 지키고 user_id는 굳이 필요없을 것 같음
- LV1,2 만 고려했을 시 schedules 테이블 만으로 충분히 구현 가능, 혹시 다음 레벨 구현 시 추가해도 될 것 같음
- user_id는 실제 사용자의 id가 아닌 개발자들이 지정하는 id 값으로 사용자가 알 수 없음, 그래서 비밀번호나 이메일을 통해 인증? id 불러오기?를 하는 것임 = 로그인을 하는 이유
-일정 1개 조회 피드백
- {id} 의 타입이 뭔지 생각해보기
-일정 전체 조회 피드백
- URL 이 생략됨 → 서버 주소 뒤쪽에 /schedules 가 빠짐
- 이 세개의 파라미터가 어떤 의미로 쓰였는지에 대해 생각 정리하기(이름을 통해 조회한다던가, 몇일 안에 작성된 걸 가져온다던가 등)
-일정 수정 피드백
- "수정"이 목적인데 user_name은 개명을 하지 않는 이상 수정할 필요 없다.
- user_id를 user가 알고 있으면 보안이 안되는거 아닌가?라는 질문을 받고 아차...!!했다.
- password 이거는 사람마다 회사마다 생각하는 방식이 달라서 넣어도 안넣어도 된다. → 나는 수정이 가능했으면 좋겠어서 넣는 방향으로 진행
<피드백 후 수정한 내용, 최종> -users는 일단은 안쓰는 걸로
<response 예시 써보기>
-만약 일정생성이라는 request에 대한 response의 예시를 작성한다면 먼저 Add example을 선택한 다음
-일정생성을 했을 시에 나타나는 예시 답변?을 쓰면 된다.
ERD 작성하기
-DB Diagram 사용해서 작성
1. Create your diagram을 눌러서 들어가면 오른쪽 사진처럼 왼쪽 검은 화면에 예시가 쭉 뜨는데 저기서 테이블 하나를 복사해와서 새로운 다이어 그램에서 원하는 테이블을 작성하면 된다.
2. 위에 API 명세서 참고한 걸 이용해서 만들면 위에 schedule 테이블만 있으면 될 것 같다.
<최종 ERD>
SQL 작성하기
-MYSQL 설치
-MYSQL workbench 설치 후 작업
1. MySQL Workbench에 들어간 다음 위에 Database 클릭 → connect to Database
2. Local host 로 설정후 생성하기 → MySQL 설치할 때 저장한 비밀번호 입력
3. 새로운 schema 생성 → Schemas 에서 테이블 선택
4. Tables에서 마우스 우클릭 → 테이블에 입력할 값 입력하면 끝
<최종 SQL 작성>
[TIL]
-아무래도 처음 사용해보는 프로그램과 사이트가 3개나 되다보니 공부도 할 겸 확실하게 기능을 익히고 싶어서 찬찬히 정리를 해봤다. 그리고 처음에 이 프로그램을 왜 사용하는지 API 명세서는 왜 써야하는지 이해를 못하고 있었는데 과제를 이미 한 조원분이 너무 친절히 설명을 해주셔서 감을 더 빨리 잡을 수 있었던 것 같다. 그리고 API 명세서보다 ERD를 먼저 쓰면 좀 더 도움이 될거라고 해서 ERD를 먼저 만들었는데 확실히 조금 더 빨리 감을 잡을 수 있었던 것 같다.
-SQL 을 작성하기 위해 MySQL이라는 프로그램을 다운받았는데....또 안돼서 한참 고생했다...요즘 프로그램 다운하는게 왜이렇게 복잡한지..모르겠다. 평소에 쓰던 것들도 아니고 새로 보는 것+ 대부분 영어로 되있어서 좀 더 헷갈리는 것 같다. 아무튼 한 두번 지우고 새로 깔고 하다보니까 세번만에 성공....! 그래도 확실히 프로그램을 쓰니까 SQL작성하는건 빨리 끝났다.
-Lv0을 마무리 해보니 SQL 작성을 하기 전에 API 명세서와 ERD가 있으면 확실히 편하구나를 알게 되었다. 두 작업을 먼저 해놓으니까 SQL에서 테이블 만드는 건 생각보다 수월하게 되서 신기했다.
-Lv0을 마무리하고 튜터님께 검사를 맡으러가야해서 한 20분 걸리겠지~하고 갔는데 튜터님이 너무 상세히 설명을 해주셔서 50분..걸렸다. 덕분에 공책에 필기가 한가득 적혔다...! 튜터님이 하나씩 짚어가면서 설명해주시고 이건 이렇게 하는게 좋을 것 같다. 자신은 이런식으로 한다 이렇게 설명을 해주시니까 머리에도 빨리 들어오고 잘못된 점이 뭔지 파악이 빨리 돼서 좋았다. Lv1,2를 하기 전에 강의를 빨리 들어서 튜터님 피드백 생각하면서 조금 더 설계를 탄탄하게 하고 진행해 봐야겠다!
'내배캠 > 프로젝트, 개인과제 코드&내용정리' 카테고리의 다른 글
[내일배움캠프/백엔드] Spring 숙련. 뉴스 피드 프로젝트 개발시작 (1) | 2024.11.20 |
---|---|
[내일배움캠프/백엔드] Spring 숙련 뉴스 피드 프로젝트 Lv0. API 명세 및 ERD 작성 (0) | 2024.11.19 |
[내일배움캠프/백엔드] Java 개인과제. Lv2 클래스를 사용한 계산기 만들기 (0) | 2024.10.16 |
[내일배움캠프/백엔드] Java 개인과제. Lv1 클래스 없이 계산기 만들기 (0) | 2024.10.15 |
[미니 프로젝트/#4] 팀 소개 페이지 제작 마무리 & 발표 및 피드백 (2) | 2024.10.07 |