Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
D-w-nJ authored Mar 30, 2024
1 parent daca6d9 commit 0f1f6ec
Showing 1 changed file with 35 additions and 17 deletions.
52 changes: 35 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
> ### API 버전관리
- [SwaggerHub](https://app.swaggerhub.com/apis/sroom/api.sroom.com/2.0.0) 사용

- yaml 파일로 작성, 현재(2024.03) 2.0.0 ver

<br>
Expand Down Expand Up @@ -122,20 +123,20 @@
## 주요 개발 사항


|날짜|타입|개발 사항(PR)|내용|
|날짜|타입|개발 사항|내용|
|---|---|---|---|
|2023-06-27|API 개발|유튜브 컨텐츠 검색기능 구현| - Youtube Data API(3rd-party API) 사용|
|2023-07-06|기능개발|[구글 소셜 로그인](https://github.com/4m9d/sroom-be/pull/14)| - google id token, jwt 사용 <br> - accessToken, refreshToken 발급|
|2023-07-24|리팩토링|[현직자 코드리뷰, 학습내용 적용](https://github.com/4m9d/sroom-be/pull/32)| - 테스트DB H2사용 <br> - SQL문은 Groovy 클래스에 선언 <br> - 상태코드 및 서비스 계층 문자열은 모두 상수처리 <br> - 서버에러 발생시 로그생성 <br> - 무분별한 트랜잭션 어노테이션 수정 <br> - 클린코드 스터디 적용(적절한 함수명, 변수명)|
|2023-08-03|성능개선|[http라이브러리 성능비교](https://github.com/4m9d/sroom-be/pull/51)|- Youtube Data API 사용하여 키워드검색, 상세검색하는 인터페이스 구현 <br> - 자바 http 라이브러리인 HttpUrlConnection, OkHttpClient, WebClient 사용하는 클래스 구현, 성능비교|
|2023-09-10|API개발|[chatGPT사용 AI서버 연동](https://github.com/4m9d/sroom-be/pull/82)| - FastAPI에게 강의자료 생성 요청, 즉각 202 Response <br> - 자바 스케줄러를 통해 일정시간마다 Celery에서 처리된 task를 확인하고 강의자료를 받아와 저장 <br> - 이 방법을 통해 chatGPT를 사용하는 동안 스레드가 불필요하게 물려있는 현상을 해결|
|2023-09-16|운영|[KMS 암호화 적용](https://github.com/4m9d/sroom-be/pull/98)| - AWS KMS(Key Management Service) 사용하여 DB url, username, pw, jwt secret, google client key 등을 암호화|
|2023-09-27|CI/CD|[Github Action 사용 배포](https://github.com/4m9d/sroom-be/pull/104)| - Github Action, AWS ECS, ECR 사용한 CI/CD 구축 <br> - 프로덕션 환경과 같은 환경의 테스트 서버 구축|
|2023-10-30|리팩토링|[객체의 협력과 책임을 고려한 프로그래밍](https://github.com/4m9d/sroom-be/pull/128)| - '오브젝트'책을 읽고 책임주도 설계를 적용시키고자 함 <br> - 객체에게 적절한 책임을 부과하고 협력하게끔 코드작성 <br> - 기존 Service 계층 코드길이가 200줄 이상되었던 문제점 해결|
|2023-11-03|성능개선|[강의추천을 위한 rating방법 개선](https://github.com/4m9d/sroom-be/pull/134)| - 기존에 리뷰개수와 리뷰총합으로 계산, 정렬해오던 강의추천방식을 개선 <br> - rating칼럼을 생성하고, 일정주기로 accumulated_rating, review_count를 사용해 계산, 업데이트하여 추천될 때마다 rating을 인덱스로 하는 DB 리스트 업데이트를 최소화|
|2023-11-06|추가기능|[ELK 구축](https://github.com/4m9d/sroom-be/pull/136)|- ELK(Elasticsearch, Logstash, Kibana) 로그저장, 모니터링 툴 설치 <br> - 로그 내용을 Elasticsearch에서 사용 가능한 json 형태로 바꾸기 위해 Logstash에서 Grok 필터를 사용하여 해결|
|2024-01-26|리팩토링|[JPA 사용](https://github.com/4m9d/sroom-be/pull/148)| - 기존 JdbcTemplate을 직접 사용하던 방식에서 JPA사용으로 리팩토링 <br> - 영속성 컨텍스트에 대한 쓰임 이해|
|2024-02-27|성능개선|[로컬 캐시 적용](https://github.com/4m9d/sroom-be/pull/152)| - 서로다른 사용자가 같은 유튜브 강의를 검색할 때, 해당 영상정보를 불러오기 위한 Youtube Data API 중복 호출하는 문제점 해결 <br> - tps 측정 가능한 nginder, 컴퓨터 리소스 모니터링 가능한 scouter사용하여 성능 확인 <br> - 1시간 이내 같은 키워드를 검색하는 경우 Latency 60% 감소|
|`2023-06-27`|API 개발|유튜브 컨텐츠 검색기능 구현| [SWM-214](https://github.com/4m9d/sroom-be/pull/51) <br> - Youtube Data API(3rd-party API) 사용|
|`2023-07-06`|기능개발|구글 소셜 로그인| [SWM-103](https://github.com/4m9d/sroom-be/pull/14) <br> - google id token, jwt 사용 <br> - accessToken, refreshToken 발급<br>|
|`2023-07-24`|리팩토링|현직자 코드리뷰, 학습내용 적용| [SWM-177](https://github.com/4m9d/sroom-be/pull/32) <br> - 테스트DB H2사용 <br> - SQL문은 Groovy 클래스에 선언 <br> - 상태코드 및 서비스 계층 문자열은 모두 상수처리 <br> - 서버에러 발생시 로그생성 <br> - 무분별한 트랜잭션 어노테이션 수정 <br> - 클린코드 스터디 적용(적절한 함수명, 변수명)<br>|
|`2023-08-03`|성능개선|http라이브러리 성능비교| [SWM-214](https://github.com/4m9d/sroom-be/pull/51) <br> - Youtube Data API 사용하여 키워드검색, 상세검색하는 인터페이스 구현 <br> - 자바 http 라이브러리인 HttpUrlConnection, OkHttpClient, WebClient 사용하는 클래스 구현, 성능비교|
|`2023-09-10`|API개발|chatGPT사용 AI서버 연동|[SWM-230](https://github.com/4m9d/sroom-be/pull/82) <br> - FastAPI에게 강의자료 생성 요청, 즉각 202 Response <br> - 자바 스케줄러를 통해 일정시간마다 Celery에서 처리된 task를 확인하고 강의자료를 받아와 저장 <br> - 이 방법을 통해 chatGPT를 사용하는 동안 스레드가 불필요하게 물려있는 현상을 해결|
|`2023-09-16`|운영|KMS 암호화 적용| [SWM-299](https://github.com/4m9d/sroom-be/pull/98) <br> - AWS KMS(Key Management Service) 사용하여 DB url, username, pw, jwt secret, google client key 등을 암호화|
|`2023-09-27`|CI/CD|Github Action 사용 배포| [SWM-296](https://github.com/4m9d/sroom-be/pull/104) <br> - Github Action, AWS ECS, ECR 사용한 CI/CD 구축 <br> - 프로덕션 환경과 같은 환경의 테스트 서버 구축|
|`2023-10-30`|리팩토링|객체의 협력과 책임을 고려한 프로그래밍| [SWM-361](https://github.com/4m9d/sroom-be/pull/128) <br> - '오브젝트'책을 읽고 책임주도 설계를 적용시키고자 함 <br> - 객체에게 적절한 책임을 부과하고 협력하게끔 코드작성 <br> - 기존 Service 계층 코드길이가 200줄 이상되었던 문제점 해결|
|`2023-11-03`|성능개선|강의추천을 위한 rating방법 개선| [SWM-388](https://github.com/4m9d/sroom-be/pull/134) <br> - 기존에 리뷰개수와 리뷰총합으로 계산, 정렬해오던 강의추천방식을 개선 <br> - rating칼럼을 생성하고, 일정주기로 accumulated_rating, review_count를 사용해 계산, 업데이트하여 추천될 때마다 rating을 인덱스로 하는 DB 리스트 업데이트를 최소화|
|`2023-11-06`|운영|ELK 구축| [SWM-385](https://github.com/4m9d/sroom-be/pull/136) <br> - ELK(Elasticsearch, Logstash, Kibana) 로그저장, 모니터링 툴 설치 <br> - 로그 내용을 Elasticsearch에서 사용 가능한 json 형태로 바꾸기 위해 Logstash에서 Grok 필터를 사용하여 해결|
|`2024-01-26`|리팩토링|JPA 사용| [SWM-412](https://github.com/4m9d/sroom-be/pull/148) <br> - 기존 JdbcTemplate을 직접 사용하던 방식에서 JPA사용으로 리팩토링 <br> - 영속성 컨텍스트에 대한 쓰임 이해|
|`2024-02-27`|성능개선|로컬 캐시 적용| [SWM-426](https://github.com/4m9d/sroom-be/pull/152) <br> - 서로다른 사용자가 같은 유튜브 강의를 검색할 때, 해당 영상정보를 불러오기 위한 Youtube Data API 중복 호출하는 문제점 해결 <br> - tps 측정 가능한 nginder, 컴퓨터 리소스 모니터링 가능한 scouter사용하여 성능 확인 <br> - 1시간 이내 같은 키워드를 검색하는 경우 Latency 60% 감소|


<br>
Expand All @@ -144,8 +145,25 @@

|url|기능(PR)|파라미터|담당|
|---|---|---|---|
|/lectures|[강의 키워드 검색](https://github.com/4m9d/sroom-be/pull/5)|keyword, filter, limit, nextPageToken|[정두원](https://github.com/D-w-nJ)|
|/lectures/{lectureCode}|[강의 상세검색](https://github.com/4m9d/sroom-be/pull/7)|index_only, review_only, index_limit, review_limit, index_next_token|[정두원](https://github.com/D-w-nJ)|

.. 이어서 작성하겠습니다.
|`GET` /lectures|[강의 키워드 검색](https://github.com/4m9d/sroom-be/pull/5)|keyword, filter, limit, next_page_token|[정두원](https://github.com/D-w-nJ)|
|`GET` /lectures/{lectureCode}|[강의 상세검색](https://github.com/4m9d/sroom-be/pull/7)|index_only, review_only, index_limit, review_limit, index_next_token|[정두원](https://github.com/D-w-nJ)|
|`POST` /members/login|[멤버 로그인](https://github.com/4m9d/sroom-be/pull/14)||[정두원](https://github.com/D-w-nJ)|
|`POST` /members/refresh|[재로그인](https://github.com/4m9d/sroom-be/pull/14)||[정두원](https://github.com/D-w-nJ)|
|`PUT` /members/profile|[프로필 설정](https://github.com/4m9d/sroom-be/pull/96)||[정두원](https://github.com/D-w-nJ)|
|`POST` /courses| [강의코스 생성](https://github.com/4m9d/sroom-be/pull/41)|use_schedule|[정두원](https://github.com/D-w-nJ)|
|`GET` /courses| [모든 강의코스 불러오기](https://github.com/4m9d/sroom-be/pull/43) | |[손경식](https://github.com/Son-GyeongSik)|
|`GET` /courses/{courseId} | [강의코스 불러오기](https://github.com/4m9d/sroom-be/pull/57) || [정두원](https://github.com/D-w-nJ)|
|`POST` /courses/{courseId} |[강의 추가](https://github.com/4m9d/sroom-be/pull/41)||[정두원](https://github.com/D-w-nJ)|
|`DELETE` /courses/{courseId} | [강의 삭제](https://github.com/4m9d/sroom-be/pull/85)||[손경식](https://github.com/Son-GyeongSik)|
|`PUT` /lectures/{courseVideoId}/time | [수강시간 업데이트](https://github.com/4m9d/sroom-be/pull/74)|is_completed_manually|[정두원](https://github.com/D-w-nJ)|
|`GET` /reviews/courses/{courseId} | [리뷰 평점 강의 리스트 조회](https://github.com/4m9d/sroom-be/pull/89)| | [손경식](https://github.com/Son-GyeongSik)|
|`POST` /reviews/lectures/{lectureId}|[리뷰 평점 작성](https://github.com/4m9d/sroom-be/pull/92)|| [손경식](https://github.com/Son-GyeongSik)|
|`GET` /courses/materials/{courseId} | [강의자료 불러오기](https://github.com/4m9d/sroom-be/pull/68)||[정두원](https://github.com/D-w-nJ)|
|`PUT` /materials/summaries/{courseVideoId}|[강의노트 수정](https://github.com/4m9d/sroom-be/pull/70)||[정두원](https://github.com/D-w-nJ)|
|`POST` /materials/quizzes/{courseVideoId} | [퀴즈채점](https://github.com/4m9d/sroom-be/pull/78)||[정두원](https://github.com/D-w-nJ)|
|`PUT` /materials/quizzes/{courseQuizId}/scrap | [오답노트 등록, 취소](https://github.com/4m9d/sroom-be/pull/80)||[정두원](https://github.com/D-w-nJ)|
|`GET` /courses/materials/{courseId}|[강의자료 pdf 변환](https://github.com/4m9d/sroom-be/pull/135)||[정두원](https://github.com/D-w-nJ)|
|`POST` /materials/{materialId}/feedback | [강의자료 사용자피드백](https://github.com/4m9d/sroom-be/pull/140)|type|[정두원](https://github.com/D-w-nJ)|
|`GET` /dashboards | [대시보드](https://github.com/4m9d/sroom-be/pull/39) || [손경식](https://github.com/Son-GyeongSik)|
|`GET` /lectures/recommendations | [강의추천](https://github.com/4m9d/sroom-be/pull/55)||[손경식](https://github.com/Son-GyeongSik)|

0 comments on commit 0f1f6ec

Please sign in to comment.