# 지현님 수업
# 공지사항
- Realworld
- [Todo list 만들기는 이제 그만, 우아한 형제](https://techblog.woowahan.com/2672/)
- [API 스펙](https://realworld-docs.netlify.app/docs/specs/backend-specs/introduction)
- [데모페이지](https://demo.realworld.io/#/)
- 테스트 == 구현 코드 (동등한 레벨)
- PR 리뷰 -> 핑퐁
- 기술 스택
- Spring Boot
- MyBatis
- Spring MyBatis
- Java 11
- Git 강의
- https://opentutorials.org/course/3840
- https://opentutorials.org/course/3843
# 20240215 5회차
## 과제
- https://realworld-docs.netlify.app/docs/specs/backend-specs/endpoints/#feed-articles
# 20240201 4회차
## 과제
- unfavorite article (https://realworld-docs.netlify.app/docs/specs/backend-specs/endpoints/#unfavorite-article)
- list articles (https://realworld-docs.netlify.app/docs/specs/backend-specs/endpoints/#list-articles)
# 20240125 3회차
## 과제
- favorite article (https://realworld-docs.netlify.app/docs/specs/backend-specs/endpoints/#favorite-article)
- unfavorite article (https://realworld-docs.netlify.app/docs/specs/backend-specs/endpoints/#unfavorite-article)
# 20240118 2회차
## 인덱스
- UNIQUE(follower_id, followee_id) == INDEX(follower_id)
- INDEX(followee_id)
- INDEX(follower_id) ---> 스토리지 낭비
- INSERT -> 비동기 INDEX 생성
- INDEX 많을수록 디비 리소스 많이 사용해요
## 과제
- unfollow api (https://realworld-docs.netlify.app/docs/specs/backend-specs/endpoints/#unfollow-user)
- favorite article (https://realworld-docs.netlify.app/docs/specs/backend-specs/endpoints/#favorite-article)
- unfavorite article (https://realworld-docs.netlify.app/docs/specs/backend-specs/endpoints/#unfavorite-article)
# 20240111 1회차
## 유의사항
- follow, unfollow 하시면서 (following: true or false) 구현하기
## 과제
- follow api (https://realworld-docs.netlify.app/docs/specs/backend-specs/endpoints/#follow-user)
- unfollow api (https://realworld-docs.netlify.app/docs/specs/backend-specs/endpoints/#unfollow-user)
# 20230923 9회차
## 유의사항
- 서비스 테스트 하나만
- follow, unfollow 하시면서 (following: true or false) 구현하기
## 과제
- 리뷰 반영
- follow api (https://realworld-docs.netlify.app/docs/specs/backend-specs/endpoints/#follow-user)
- unfollow api (https://realworld-docs.netlify.app/docs/specs/backend-specs/endpoints/#unfollow-user)
# 20230916 8회차
## 유의사항
- service 테스트 딱 메소드 하나만!
## 과제
- comment 삭제 api (https://realworld-docs.netlify.app/docs/specs/backend-specs/endpoints/#delete-comment)
- article의 comment 조회 api (https://realworld-docs.netlify.app/docs/specs/backend-specs/endpoints/#get-comments-from-an-article)
- follow api (https://realworld-docs.netlify.app/docs/specs/backend-specs/endpoints/#follow-user)
# 20230906 7회차
## 유의사항
- 쿼리 테스트 무조건!
- service 테스트 딱 메소드 하나만!
- Github actions 어떻게...?
## 과제
- article 조회 api (https://realworld-docs.netlify.app/docs/specs/backend-specs/endpoints#create-article)
- comment 생성 api (https://realworld-docs.netlify.app/docs/specs/backend-specs/endpoints/#add-comments-to-an-article)
- comment 삭제 api (https://realworld-docs.netlify.app/docs/specs/backend-specs/endpoints/#delete-comment)
# 20230816 6회차
## 과제
- article 생성 api (https://realworld-docs.netlify.app/docs/specs/backend-specs/endpoints#create-article)
- slug 스스로 판단
- 수정, 삭제 api 는 테스트 작성해야 해요!
- article 수정 api (https://realworld-docs.netlify.app/docs/specs/backend-specs/endpoints#update-article)
- article 삭제 api (https://realworld-docs.netlify.app/docs/specs/backend-specs/endpoints#delete-article)
# 20230726 회차 아님
## 과제
- 사용자 정보 업데이트 api 리뷰 반영 및 머지
- logback (나)
- article 생성 api (https://realworld-docs.netlify.app/docs/specs/backend-specs/endpoints#create-article)
- slug 가 무엇인지 파악하는게 중요해요!
- slug가 중복 되지 않도록 해야 합니다!
# 20230712 5회차
## 과제
- 사용자 정보 업데이트 api (https://realworld-docs.netlify.app/docs/specs/backend-specs/endpoints#update-user)
- logback (나)
- 로그인 api, 내 정보 가져오기 api 마무리 -> 핑퐁 -> 머지
# 20230705 4회차
## 과제
- Git 강의
- 로그인 api (https://realworld-docs.netlify.app/docs/specs/backend-specs/endpoints#authentication)
- 내 정보 가져오기 api (https://realworld-docs.netlify.app/docs/specs/backend-specs/introduction)
- 사용자 정보 업데이트 api (https://realworld-docs.netlify.app/docs/specs/backend-specs/endpoints#update-user)
# 20230628 3회차
## 과제
- 회원가입 api 마무리
- 쿼리 로그 출력
- 에러 코드
# 20230614 2회차
# 20230607 1회차
## 과제
- Exception handling (@RestControllerAdvice, @ExceptionHandler, ErrorCode(Enum), BusinessException)
- 참고: https://cheese10yun.github.io/spring-guide-exception/
- 회원 가입 API
- DB mapper 설정 필요함 -> https://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/
- 회원 인증의 경우엔 Authorization: Token 1, Token 2 사용자 id(PK) 값을 넣는걸로 함
- 인증은 나중에!