작업 기간 2023-07-03 ~ 2023-08-18 (7주)
참여 개발자 (6명) - Backend 3명, Frontend 3명
개발 언어 Java 11, TypeScript
프론트엔드 React
백엔드 Spring Boot 2.7.13, JPA
데이터베이스 MySQL

$\color{427D9D}\rule{365px}{1px}$

프로젝트 소개

<aside> 🔥 SSAFY 9기 2학기에 진행했던 온라인 타임캡슐 서비스 DAMDA(담다) 입니다.

기존 타임캡슐의 한계점인 물리적 손상, 고비용, 임의 폐기 위험을 해결하고자 만들어진 온라인 타임캡슐 서비스입니다. 담다는 사용자들의 추억을 디지털 형태로 저장하고, 미래의 특정 시점에 다시 열어볼 수 있는 기능을 제공합니다.

또한 다양하고 이쁜 테마를 두어서 유저들의 감성을 자극하고, 더욱 풍부한 사용자 경험을 제공하도록 디자인하였습니다.

</aside>

담다 (4).png

$\color{427D9D}\rule{365px}{1px}$

🧑 나는 무엇을 했는가?

$\color{427D9D}\rule{365px}{1px}$

💻 왜 이런 기술을 썼나요?

  1. 리프레시 토큰

    기존에는 액세스 토큰만 사용해서 유저를 관리했으나 액세스 토큰이 만료되면 유저가 로그아웃이 된다는 불편이 있었습니다. 그래서 리프레시 토큰을 추가해서 해당 유저가 로그아웃이 되지 않고 액세스 토큰을 재발급 할 수 있도록 만들었습니다.

  2. 스프링 시큐리티

    담다 서비스를 만들면서 인증 및 인가와 같은 보안 절차를 편리하게 사용하기 위해서 사용했습니다. 또한 스프링 oauth2 라이브러리를 사용하면서 소셜 로그인의 인증 절차인 AccessToken 발급을 자동으로 처리하기 위해서 사용하였습니다.

  3. 스프링 부트 2.x 처음에는 스프링부트 3을 쓰려고 했는데 우선 자바11이 아닌 자바17로 넘어가야 한다는 점이 굉장히 큰 문제였습니다. 또한 현재 기업에서는 자바11을 가장 많이 채택하고 있기도 하고, 스프링부트 2.x로 프로젝트를 진행하기 때문에 적응을 위해서 2.x 버전을 채택하였습니다.

  4. JPA

    기존에는 MyBatis로 프로젝트를 진행하였습니다. 하지만 단순한 CRUD와 같은 쿼리를 작성해야 한다는 불편함을 마주했고, ORM 기술을 사용하고 싶어서 JPA를 선택했습니다.

    또한 JPA를 통해 자동으로 테이블을 생성할 수 있다는 편리함이 매력적이었습니다.

$\color{427D9D}\rule{365px}{1px}$

📖 프로젝트 개발 일지 (프로젝트를 진행하면서 개발 과정을 기록해두었습니다.)

공통 프로젝트 일기장(담다)