본문 바로가기

반응형

분류 전체보기

(48)
[ShowReco] Cursor, Figma MCP로 화면 디자인하기 2025.06.27 - [프로젝트/ShowReco] - [ShowReco] 요구(기능)사항 정의 - 음반 컬렉터들을 위한 SNS 플랫폼 [ShowReco] 요구(기능)사항 정의 - 음반 컬렉터들을 위한 SNS 플랫폼2025.06.18 - [프로젝트/ShowReco] - [ShowReco] 사이드 프로젝트 살리기 [ShowReco] 사이드 프로젝트 살리기최근 LLM, MCP, AI 기반 IDE 등 개발 도구의 비약적인 발전에 따라 1인 개발이 활발해지고 있는 것 같다seo92js.tistory.com 지난 포스팅에 걸쳐 진행했던 요구사항과 기능 명세를 마치고 이제 화면을 그릴 차례다 개박자에게 '디자인'이라는 거대한 벽 솔직히 프로젝트의 모든 단계 중 이 단계가 가장 막막하게 느껴졌는데.. 회사에서 협업..
[Spring] Service와 Repository 의존성: 좋은 패턴 고민하기 (Feat. Facade 패턴) 나는 오랫동안 'Controller는 Service를, Service를 Repository를 호출한다'는 단순한 계층형 구조가 각 계층이 자신의 역할에 충실할 수 있고, 순환참조 문제에서도 비교적 자유롭고, 퍼사드 패턴은 지저분하다고 생각하여 가장 이상적이라고 생각해왔다. 실제 고민이 시작된 계기 프로젝트를 진행하면서 이러한 구조에 의문을 가지게 된 계기가 있었는데 어느 도메인 Repository로부터 값을 조회한 뒤, Optional이 비어있으면 예외를 Throw 하는 코드가 여러 도메인 Service 에서 반복 적으로 사용되었고 이런 식의 중복 로직이 여러 곳에 흩어져 있는 점이 점점 싱경 쓰이기 시작했다.repository.findById(id).orElseThrow(...) 단순히 계층만 생각했..
[ShowReco] 기술 스택 선정 및 아키텍처 설계 2025.06.27 - [프로젝트/ShowReco] - [ShowReco] 요구(기능)사항 정의 - 음반 컬렉터들을 위한 SNS 플랫폼 [ShowReco] 요구(기능)사항 정의 - 음반 컬렉터들을 위한 SNS 플랫폼2025.06.18 - [프로젝트/ShowReco] - [ShowReco] 사이드 프로젝트 살리기 [ShowReco] 사이드 프로젝트 살리기최근 LLM, MCP, AI 기반 IDE 등 개발 도구의 비약적인 발전에 따라 1인 개발이 활발해지고 있는 것 같다seo92js.tistory.com 다시 한번 서비스의 기능들을 정리하고, 어떤 기술들로 이 집을 지을지 구체적으로 설계하는 시간을 가졌다. 핵심 아키텍처 구상내가 생각한 핵심 아키텍처는 역할을 명확히 분리하는것이다 사용자가 만나는 프론트엔드와..
[ShowReco] 요구(기능)사항 정의 - 음반 컬렉터들을 위한 SNS 플랫폼 2025.06.18 - [프로젝트/ShowReco] - [ShowReco] 사이드 프로젝트 살리기 [ShowReco] 사이드 프로젝트 살리기최근 LLM, MCP, AI 기반 IDE 등 개발 도구의 비약적인 발전에 따라 1인 개발이 활발해지고 있는 것 같다. 나는 항상 사이드 프로젝트를 진행할 때 서버를 만들고 나서 화면을 제작할 때 설계 없이 진seo92js.tistory.com 사이드 프로젝트를 살리기로 마음먹고 요구사항 정의를 시작했는데 어떤 기능들이 있어야 이용하기 편하고, 신선하고 재밌는 서비스가 될까에 대한 생각을 좀 해봤다. 그래서 몇가지 아이디어들이 생각 났는데 짧게 풀어보자면 1. 컬렉터들의 니즈, Discogs API 로 완벽하게 채우기 수집의 가장 기본은 정확한 정보인데, 내가 가진 앨..
[Spring] @Transactional이 비동기(Async)를 만났을 때 벌어지는 일들 애플리케이션 성능을 위해 비동기 처리는 필수적이다. 비동기로 DB 작업을 처리했는데, 트랜잭션이 적용되지 않거나 롤백이 되지 않는 문제를 겪어 글을 정리하여 남기기로했다. 아래에 작성하는 코드들은 실제 테스트한 코드가 아니라 많이 축약한 예시코드입니다 잘못된 내용이 있다면 피드백 부탁드립니다. 1. @Transactional이 붙은 메소드 안에서 CompletableFuture로 비동기 작업을 실행 (트랜잭션이 전파되지 않음)@Transactionalpublic CompletableFuture updateData() { return CompletableFuture.runAsync(() -> { repository.save(entity); // 새로운 트랜잭션 생성 });} @Tra..
[ShowReco] 사이드 프로젝트 살리기 - 음반 컬렉터들을 위한 SNS 플랫폼 최근 LLM, MCP, AI 기반 IDE 등 개발 도구의 비약적인 발전에 따라 1인 개발이 활발해지고 있는 것 같다. 나는 항상 사이드 프로젝트를 진행할 때 서버를 만들고 나서 화면을 제작할 때 설계 없이 진행하다보니 막히는 부분도 많았고 프로젝트의 흥미가 떨어지기 일 수 였는데 Figma MCP 관련 다양한 글을 읽다보니 나도 '딸깍' 으로 화면 디자인을 할 수 있지 않을까 라는 생각이 들었다. 그래서 이전에 진행했던 음반 수집 관련 sns 프로젝트를 되살려 보려한다. ( 저는 음반 콜렉터이자 리스너임 ..) 프로젝트 가제 'ShowReco' 도 정했고, 요구사항 정의 부터 운영까지 단계적으로 프로젝트를 진행해보려고 한다. 진행 순서는 다음과 같다 아이디어 구체화 및 목표 설정요구사항, 기능 명세기술 ..
[IntelliJ] docker compose로 실행한 애플리케이션 인텔리제이로 디버깅 하기 MSA 프로젝트를 개발하면서 discovery, gateway, config를 포함하여 7개의 마이크로서비스를 docker compose로 하나의 컨테이너로 실행을 하고있다. IntelliJ와 Docker Compose를 활용하여 실행 중인 애플리케이션의 디버깅 환경을 설정하는 방법을 단계별로 정리했다. 1. 디버그 포트 노출각 마이크로서비스에 대해 JVM 디버깅 포트를 노출한다. ( docker-compose.yml 수정) 2. environment 에 JVM의 디버그 모드를 활성화 하는 옵션 설정JAVA_TOOL_OPTIONS : JVM의 디버그 모드를 활성화 하는 옵션모든 서비스는 고유한 디버깅 포트를 사용해야 한다.transport=dt_socket : 디버거와의 통신에 소켓을 사용 3. Inte..
유비쿼터스 언어(보편 언어)의 중요성을 느끼며 유비쿼터스 언어(Ubiquitous Language, 보편 언어)는 도메인 주도 설계에서 중요한 개념으로,  프로젝트의 모든 이해관계자들이 공통으로 사용하는 언어를 의미한다. 도메인에서 사용하는 용어를 코드에 반영하지 않으면 코드의 의미를 해석해야하는 부담을 준다. 개발 도메인이 명확한 직장에서 근무하며 여러 프로젝트를 진행하다 보니, 유비쿼터스 언어의 중요성을 점점 더 깊이 체감하게 되었다. 디자이너, 분석가, PM 등 다양한 분야의 동료들과 소통하고 협업하는 과정에서, 이 보편 언어의 필요성이 더욱 두드러졌다. 프로젝트를 진행하면서 유비쿼터스 원어의 중요성을 깨닫게 된 주요 이유들은 다음과 같다. 1. 의사소통의 오해와 실수'혼잡도' 와 '밀집도' 처럼 비슷하지만 다른 의미를 가진 용어들로 인해 오해..

반응형