Project

Project

[실시간 알림 개선하기 - 1] 기능 구현이 전부는 아니니까! (feat. FCM)

시작하며그동안 이런 저런 일로 오랜만에 글을 작성하게 되었는데, 앞으로는 글을 작성하는 스타일이 바뀔 것 같습니다.단순 정보 전달, 개념 정리 보다는 실제로 개발을 하면서 겪었던 문제점, 고민, 개선 스토리 등을 공유하고자 합니다. 해당 시리즈에서는 '우리들의 코스, 우코(Wooco)' 서비스의 알림 기능을 어떻게 개선해 나갔는지를 소개하겠습니다. 'Wooco' 서비스(편의상 '우코' 라고 칭하겠습니다)는 특정 지역에서의 맛집, 카페, 놀거리 등을 하나의 코스로 묶어 공유할 수 있고, 사용자들은 이를 참고해 나만의 일정을 만들어나갈 수 있는 장소 아카이빙 및 공유 플랫폼 입니다. 우코에 대한 자세한 설명은 추후 홍보와 함께 자세히 하도록 하겠습니다. (뜨거운 관심 부탁드려요) 저는 알림 기능 개발을 맡았..

Project

[Project] Spring Boilerplate 시리즈 (3) - 유저 도메인 추가

User Entity유저 엔티티에서 필요한 필드는 무엇일까? 해당 프로젝트에서 중요한 유저 기능은 자체 로그인과 소셜 로그인일 것이다. 따라서 기본적인 유저의 정보(이메일, 비밀번호, 닉네임 등)가 필요하다. 또한 어떤 소셜 서비스를 사용하는지 나타내는 소셜 아이디, 소셜 타입 정도를 추가하면 될 것 같다. 유저 아이디이메일비밀번호이름소셜 타입소셜 아이디 🛠️ 채번 전략그동안 JPA에서 채번 방식으로 Auto Increment 전략을 사용해 PK 값을 지정했다. 여러 전략이 있지만 구현이 간단하고 1부터 시작하여 자동 증가하기 때문에 별 생각 없이 자동 생성 전략을 채택한 것이다. 하지만 여기엔 몇 가지 문제점이 있는데, 해당 글에선 다루지 않고 따로 작성하도록 하겠다. 이외에도 다음과 같은 채번 전략..

Project

[Project] Spring Boilerplate 시리즈 (2) - 프로젝트 세팅

프로젝트 생성 및 의존성 빠르게 프로젝트를 만들기 위해 https://start.spring.io/ 에서 다음과 같이 설정한 뒤 생성했다.초기 개발에 필요한 의존성은 아래와 같다. // build.gradle...dependencies { // Spring Boot implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-validation' developmentOnly 'org.springframework.boot:spring-boot-devtools' // Lombok compileOnly 'org.projectlombok:lombo..

Project

[Project] Spring Boilerplate 시리즈 (1) - 프로젝트 개요 및 요구 사항 분석

개요개발 공부를 하면서 프로젝트를 처음 시작할 때 무엇부터 해야할지 막막했던 경험이 있을 것이고, 나 또한 그랬다. 만약 어디서부터 어떻게 시작해야할지 안다고 하더라도, 이를 처음부터 구현하기엔 꽤 많은 시간과 노력이 들어간다고 생각한다. 나는 이런 번거로움을 줄이고 시간을 절약하기 위해 간단한 보일러플레이트 프로젝트를 시작해보려 한다. 수많은 애플리케이션들은 그 성격에 따라 요구사항도 천차만별일 것이고, 필요한 기능도 모두 다르겠지만, 자주 사용하거나 대부분의 상황에서 공통으로 필요한 기능들이 있다. 예를 들어 기본적인 유저 관리 기능, 로깅이나 응답 형식, 예외 처리 등 말이다. 이러한 것들을 템플릿으로 만들어 효율적으로 개발하고 비즈니스 로직에 집중하기 위해, 다시 한번 초기 세팅부터 배포까지 복습..

Project

[Project] 학교 시설 예약 관리 앱 (3) - ERD 작성 및 API 설계

1️⃣ ERD 1) ERD란? ERD(Entity Relationship Diagram) 이란 개체-관계 모델로, 관계형 데이터베이스에서 주로 사용되는 다이어그램이다. 이는 테이블간의 관계를 다이어그램으로 표현하여 개체간 관계, 즉 DB의 구조를 한 눈에 파악할 수 있다는 장점이 있다. 구성 요소로는 크게 세 가지가 있다. 'Entity(개체)', 'Relationship(관계)', 'Diagram(다이어그램)' 으로, 말 그대로 ERD 를 표현하는 구성 요소들이다. 최근에 정보처리기사 필기를 공부하면서 그동안 잘 알지 못했던 관련 개념들을 공부할 수 있었다. 하지만 프로젝트 진행 당시 ERD에 대한 지식이 전혀 없었기 때문에 많은 시행착오를 겪었다. 지난 게시글에 올린 '요구사항 분석 및 설계' 단계에..

Project

[Project] 학교 시설 예약 관리 앱 (2) - 요구 사항 분석 및 구조 설계

프로젝트도 끝난지 2주가 다 돼간다. 기말고사 기간이지만 그동안 어떻게 프로젝트를 진행했는지 포스팅해보려 한다. 참고로 나는 프로젝트 초반에 어떻게 시작해야할지 너무 막막했다. 이에 비슷한 프로젝트를 진행중인 사람들에게 조금이나마 도움이 되면 좋겠다는 마음이다. 물론 어느정도 완성은 했지만 아직 뜯어 고쳐야할 것들이 많다. 실제 서비스까지 하면 좋겠지만, 아직은 실력의 한계때문에 불가하니 참고 정도로 봐주면 좋겠다. 앞으로 해당 프로젝트 관련 글이 많이 올라갈 예정이다. 쓰고싶은 내용이 많다. 1️⃣ 요구 사항 분석 1) 요구 사항 목록 요즘 알고리즘 문제를 많이 풀면서도 느낀 것이지만, 요구 사항을 잘 분석하는 것이 중요하다는 것을 깨닫고 있다. 프로젝트 당시 여러 번의 회의를 거치며 어떤 기능이 필요..

Project

[Project] 학교 시설 예약 관리 앱 (1) - 개요

1️⃣ 개요 현재 대학교 4학년인 만큼 졸업을 하기 위해선 '캡스톤 디자인'을 해야 한다. 이에 나는 4인 1팀을 꾸려 Flutter 와 Firebase, Spring 을 활용한 학교 시설 예약 관리 앱 (서비스) 제작을 주제로 선정했다. 그 중 나의 역할은 팀장 및 백엔드를 맡았다. 2️⃣ Why ? 우리 학교엔 도서관 내 스터디 룸, 개방형 학습 공간, 학생 쉼터, 이외 체육 공간 등 다양한 편의 시설이 존재한다. 물론 축구장, 체육관, 스터디 룸 등은 이미 학교 웹사이트를 통해 예약하여 사용할 수 있는 시스템이 마련되어있다. 그러나 일부 시설의 경우 온라인으로 예약할 수 있는 시스템이 없어 직접 가서 수기로 명단을 작성해야 한다. 만약 학교 내 편의 시설을 모아 한번에 예약할 수 있는 애플리케이션이..

박갈
'Project' 카테고리의 글 목록