Back-end

Back-end

[Project - 노졸중] "Flyway"를 이용한 데이터베이스 마이그레이션

▼ Why ? What ? 이번에 "노졸중" 프로젝트를 진행하면서, "Flyway"라는 데이터베이스 마이그레이션 오픈 소스 툴을 처음 사용해보게 됐다. 사실 현재 프로젝트엔 개발 환경만 존재하고 아직 프로덕션 서버가 존재하지 않기 때문에, 데이터베이스 마이그레이션이 그렇게 필요한 상황은 아니었다! 하지만, 개발을 계속 하다보니 엔티티를 수정할 일이 많았고, 이에 따라서 데이터베이스 스키마나 테이블명이 자주 변경되었다. 일일이 DDL을 써줘도 되는데 아직 사용자도 없고 무엇보다 너무 번거로워서 해당 옵션들을 사용해왔다. 프론트에서 테스트할 때 DB의 데이터가 초기화되면 같은 과정(회원가입, 데이터 등록)을 반복해야 하는 것이 번거로워 보였고, DB 초기화를 하지 않고 엔티티 구조를 쉽게 수정할 방법을 찾아..

Back-end/Spring & JPA

[Project - 노졸중] `@Convert` vs `@JoinTable`

▼ What ? Why ? 이번에 개발하고 있는 뇌졸중 증상 자가 점검 앱 애플리케이션에서 몸 상태를 기록하는 페이지가 있는데, "어지러움", "힘이 없음"처럼 간단하게 버튼을 클릭해서 기록할 수 있는 기능이 있었다. 프론트로부터 해당 데이터를 `Enum` 타입의 리스트로 받아오고, 다시 전송해줄 때도 으로 `Enum` 타입의 리스트로 전송해줘야 하다보니, 데이터베이스에 어떤 형태로 저장하는게 좋을지 고민해보게 됐다. 중간 테이블을 만들고 `@JoinTable` 애너테이션을 사용하여 다대다 관계를 형성해주는 것은 뭔가 성능적으로도 비즈니스적으로도 적합한 것 같지 않아 다른 방법을 찾아보았고,  이때 `@Convert`라는 애너테이션을 처음 알게 되어 사용해보게 됐다.▼ 데이터 타입을 변환하여 저장하고 싶..

Back-end/Spring & JPA

[Project - 노졸중] 엔티티를 외부로 노출시키지 마라 ! (+ 컬렉션을 반환하는 경우에 확장성을 높일 수 있는 방법)

▼ Why ? What ? "실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화"라는 강의를 들으면서 엔티티를 외부로 노출시켰을 떄 발생하는 문제점들과 이에 대한 해결책에 대해 공부했었다. 그때 공부했던 내용을 현재 진행하고 있는 뇌졸중 예방 애플리케이션 개발 프로젝트("노졸중")에서 복용약 정보 리스트를 조회하는 API를 만드는 과정에 적용시켜보게 됐고, 이를 복기해보고자 글로 따로 정리해보게 되었다.▼ 엔티티를 외부로 노출시키지 마라 ! [ 노션 정리 링크 ] 엔티티를 외부로 노출시키지 마라 ! | Notion엔티티를 외부로 노출시키지 마라 !thin-azimuth-2a9.notion.site

Back-end/Spring & JPA

[Project - 노졸중] 쿼리 스트링(Query String) vs 경로 변수(Path Variable)

▼ Why ? What ? 현재 뇌졸중 예방 애플리케이션 개발 프로젝트("No졸중")를 진행하고 있는데, 복용약 정보 리스트를 조회하는 API를 만드는 과정에서 회원 식별자(`memberId`)를 가져올 때 '경로 변수'를 활용해야 할지, '쿼리 스트링'을 활용해야 RESTful한 설계일지 고민하게 되었다. 그래서 각각 어떤 경우에 채택되는 방식인지 알아보고 따로 정리해두면 유용할 것 같아 글을 작성하게 됐다.▼ 쿼리 스트링(Query String) vs 경로 변수(Path Variable) [ 노션 정리 링크 ] 쿼리 스트링(Query String) vs 경로 변수(Path Variable) | NotionBuilt with Notion, the all-in-one connected workspace ..

Back-end/Spring & JPA

[Spring & JPA] "실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화" 완강 후 요약 정리

▼ Why ? What ? 실무에서 API를 개발할 때 유지보수에 유리하며 보다 효율적인 코드를 작성할 수 있을지에 대해 공부해보고 싶어 "실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화"라는 강의를 이어서 듣게 되었고, 공부하면서 꼭 기억해야 할 부분들을 위주로 정리를 해봤다.▼ "실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화" 요약 정리 [ 요약 정리 링크 ] 실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화 | Notion1. API 개발 기본thin-azimuth-2a9.notion.site

Back-end

[Back-end] RESTful API가 무엇이고 왜 범용적으로 사용되는가 ?

▼ Why ? What ?  "실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발" 강의를 완강한 이후에, 실무에서 API를 개발할 때 유지보수에 유리하며 보다 효율적인 코드를 작성할 수 있을지에 대해 공부해보고 싶어 "실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화"라는 강의를 이어서 듣게 되었다. 하지만 강의 초반부에 RESTful API 관련 내용을 들을 때 "멱등성을 만족해야 한다"는 등의 이야기가 잘 이해되지 않는 것 같아 RESTful API에 대한 이해도가 부족하다고 느꼈다. 따라서, `RESTful API`를 세계적으로 사용하는 이유가 무엇이고 그러한 이점들을 가져오게 된 특성들이 무엇인지에 대해 공부해보게 되었다.▼ RESTful API가 뭐지 ? [ 요약 정리..

Uykm
'Back-end' 카테고리의 글 목록