MemoWithTags는 기존의 디렉터리 기반 메모 관리 방식을 탈피하여, 태그 기반의 유연한 메모 관리와 AI 기반 태그 추천 기능을 통해 사용자가 더욱 효율적으로 정보를 분류하고 검색할 수 있도록 도와주는 혁신적인 메모 앱입니다.
-
태그 기반 메모 관리
기존의 폴더나 디렉터리 방식과 달리, 메모마다 자유롭게 태그를 부여할 수 있어 다양한 관점에서 메모를 분류하고 검색할 수 있습니다. -
AI 자동 태그 추천
메모 작성 시 AI가 핵심 내용을 분석하여 적절한 태그를 자동으로 추천해줍니다. 덕분에 사용자는 더욱 빠르게 메모를 정리하고, 중요한 정보를 놓치지 않을 수 있습니다. -
직관적 인터페이스
사용자 경험을 극대화한 디자인과 간편한 인터페이스를 제공하여 복잡한 분류 체계 없이도 원하는 메모를 즉시 찾을 수 있습니다. -
효율적인 검색 기능
태그 기반 검색과 키워드 필터링 기능을 통해 수많은 메모 속에서도 원하는 정보를 빠르게 조회할 수 있습니다. -
태그 관리의 개인화
개인의 업무 스타일에 맞게 태그를 커스터마이징하고, 메모를 자유롭게 연결할 수 있어 창의적인 아이디어 정리에 최적화되어 있습니다.
치밀한 기획을 바탕으로 실제 서비스로 이용 가능할 정도의 높은 완성도의 앱을 개발하였습니다..
단순 앱 개발을 넘어 AI 기술을 융합하여, 서비스의 질을 한층 더 향상시켰습니다.
체계적인 디렉터리 설계를 통해, 향후 서비스 확장 시 유지 보수 및 확장성이 뛰어나도록 준비했습니다.
팀원들이 모여 빠르게 기획을 마무리하고, 즉시 개발에 착수할 수 있었습니다.
단기간 내에 실제 서비스로 제공할 수 있을 만큼 안정적이고 완성도 높은 앱을 개발하였습니다. 특히, iOS 최진모 님이 방학 동안 막대한 시간을 투자하여 훌륭한 결과물을 만들어낼 수 있었습니다.
디자이너 한수정 님은 Android 사용자인데도 불구하고 iOS 팀원들과 원활하게 소통하며 성공적으로 디자인을 구현하였습니다.
백엔드 김용범 님이 서비스 개발뿐만 아니라 AI 연구에도 힘써, 앱의 기능과 완성도를 더욱 높이는 데 기여하였습니다.
백엔드 김인호 님은 소셜 로그인 기능 구현 과정에서 수많은 장애물과 어려움을 극복하며 결국 성공해냈습니다.
백엔드이자 막내 이종호 님은 다양한 업무를 맡아 차질 없이 모두 해결하며 안정적인 개발을 이끌었습니다.
우리 팀에는 프리라이더가 단 한 명도 없습니다. 모든 팀원이 각자의 역할을 충실히 수행하며 프로젝트를 완성했습니다.
프론트엔드 팀원도 백엔드에 적극적으로 피드백을 주었고, 백엔드 팀원도 프론트엔드에 의견을 전달하며 각자의 역할을 넘어서 책임감 있게 협업하였습니다.
MemoWithTags는 태그 기반 메모 관리와 AI 자동 태그 추천을 통해 효율적인 메모 정리를 지원하는 서비스입니다.
아래는 제공되는 주요 기능과 API 엔드포인트입니다.
- 회원가입 →
POST /auth/register
- 이메일 인증 →
POST /auth/verify-email
- 로그인 →
POST /auth/login
- 비밀번호 재설정 →
POST /auth/reset-password
- 비밀번호 변경 →
PUT /auth/password
- 닉네임 수정 →
PUT /auth/nickname
- 토큰 재발급 →
POST /auth/refresh-token
- 사용자 정보 조회 →
GET /auth/me
- 회원 탈퇴 →
DELETE /auth/withdrawal
- 메모 생성 →
POST /memo
- 메모 수정 →
PUT /memo/{memoId}
- 메모 삭제 →
DELETE /memo/{memoId}
- 메모 검색 →
GET /search-memo
- 메모에 태그 추가 →
POST /memo/{memo-id}/tag
- 메모에서 태그 삭제 →
DELETE /memo/{memo-id}/tag
- 전체 태그 가져오기 →
GET /tag
- 태그 생성 →
POST /tag
- 태그 수정 →
PUT /tag/{tagId}
- 태그 삭제 →
DELETE /tag/{tagId}
- 카카오 로그인 →
GET /auth/login/kakao
- 네이버 로그인 →
GET /oauth/naver
- 구글 로그인 →
GET /oauth/google
- 유저 목록 조회 →
GET /admin/user
- 유저 계정 생성 →
POST /admin/user
이 API 목록을 통해 MemoWithTags의 주요 기능을 한눈에 확인할 수 있습니다.
더욱 직관적인 태그 기반 메모 관리와 AI 자동 태그 추천 기능을 통해 생산성을 높여보세요! 🚀
👉🏻 API 바로보기
- 메일 인증 시스템
- STMP 서버를 통해 이메일 인증 기능을 구현하는 과정에서 암호화 프로토콜(SSL/TLS), 구글 보안 정책 등으로 인해 여러 어려움을 겪었습니다.
- 아래의 웹 사이트를 참고하여 문제를 해결하였습니다.
- https://dev-annals.tistory.com/68
- https://docs.spring.io/spring-framework/reference/integration/email.html
- 소셜 로그인
- 카카오, 네이버, 구글 세 가지 서비스를 통해 로그인할 수 있도록 각각의 서비스에서 제공하는 API를 활용하였습니다.
- Java의 라이브러리를 Kotlin에서 사용하며 발생한 오류와, API 요청과 응답으로 쓰이는 JSON 파싱 중 여러 발생한 오류들을 해결하였습니다.
- 내용이 긴 메모
- 내용이 긴 메모를 보낼 때, MySQL에서 정해진 content 필드의 크기 한계로 인해 오류가 발생하여 500 에러가 발생하였습니다.
- JPA Entity를 정의할 때 @Lob, @Column의 columnDefinition 지정 등으로 content 필드를 TEXT 타입으로 지정하여 해결하였습니다.
- 태그와 메모의 임베딩 벡터 저장 문제
- Spring 서버에서 태그(TagEntity)와 메모(MemoEntity)의 임베딩 벡터(
List<Float>
)를 효율적으로 저장하는 과정에서 여러 어려움을 겪었습니다. AttributeConverter
를 활용하여 List 타입을 문자열(Text)로 변환하여 저장하여 데이터 조회 시 문자열을 다시 List로 변환하는 방식 적용하였습니다.- 이를 통해 JPA에서 List 타입을 유지하면서도 데이터베이스에 저장 가능하도록 처리하도록 해결하였습니다.
- Spring 서버에서 태그(TagEntity)와 메모(MemoEntity)의 임베딩 벡터(
iOS + PM | iOS | Design | Backend | Backend | Backend |
---|---|---|---|---|---|
류수영 | 최진모 | 한수정 | 김용범 | 김인호 | 이종호 |