전체 글 (201) 썸네일형 리스트형 [DDD] 유즈케이스 출력 모델에서 도메인 엔티티를 직접 쓰면 안 되는 이유 DDD와 클린 아키텍처를 적용하다 보면 유즈케이스의 출력 모델을 어떻게 정의할지가 고민된다. 실제로 우리 회사의 프로젝트에선 유즈케이스는 도메인 엔티티를 그대로 반환하는 방식으로 구현되어있다. 하지만 이 방식이 과연 최선일까 나는 늘 고민이었다. 그러던 중 [만들면서 배우는 클린 아키텍처] 책을 읽게 되었고, 여기서 힌트를 얻게 되었다. 유즈케이스는 최대한 얇게유즈케이스는 응용 계층에서 도메인 엔티티를 조율하고, 필요한 비즈니스 로직을 달성하는 흐름이다. 그런데 출력 모델을 도메인 엔티티 자체로 두게 되면 문제가 생긴다. 도메인 엔티티가 곧 유즈케이스의 출력 인터페이스가 되기 때문에, 유즈케이스가 바뀔 때마다 엔티티에 변화를 주고 싶은 유혹이 생긴다. 즉, 응용 계층의 요구가 도메인에 영향을 주는 구조가.. [DDD] 클린 아키텍처에서 유즈케이스와 입력값 검증 책임 분리하기 DDD와 클린 아키텍처를 적용하다 보면 유즈케이스가 응용 계층의 중심 역할을 맡게 된다. 유즈케이스는 도메인 엔티티와 협력해서 비즈니스 로직을 달성하는 흐름을 정의하는데, 여기서 늘 고민이 생긴다.바로 입력값 유효성 검증을 어디서 처리할 것인가 하는 문제다.유즈케이스의 본질적인 책임유즈케이스는 단순히 입력을 받아 처리하는 서비스 계층의 메서드가 아니다. 응용 계층에서 유즈케이스가 맡는 역할은 도메인 모델을 조합하고 실행시켜 특정 시나리오를 완성하는 것이다. 즉, 유즈케이스의 책임은 비즈니스 로직을 올바르게 실행하는 것이고, 입력값의 정합성을 세밀히 확인하는 일은 그 본질적인 책임이 아니다. 만약 유즈케이스 내부에서 입력값 검증까지 맡게 되면 유즈케이스의 책임이 불필요하게 확장된다.도메인 조율과 입력 검증.. [Spring] supabase를 spring 프로젝트에 연결하기 supabase는 공짜로 사용할 있잖아요? 그래서 이점이 있는데, 저는 supabase의 client를 사용하고 싶지는 않았습니다. 그래서 그냥 supabase가 postgresql 기반이기도하고, db url만 가져와서 사용하기로 했숩니다. 먼저, supabase에서 프로젝트를 만들구요. 프로젝트에 들어간 다음 저기 connect 버튼을 눌러줍니다. 그러면, 아래와 같이 project에 연결하기 위한 url들이 나타나요. 저는 JDBC url를 가져와서 사용햇숩니다. 해당 url를 복사한 후, application.yml 파일에 spring: datasource: url: jdbc:postgresql://aws-0-ap-northeast-2.pooler.supabase.com:6543/po.. 인텔리제이에서 maven 실행 env 파일 설정하기 자바에서 maven으로 프로젝트를 설정하고 작업을 하는 중이다. maven clean package를 통해서 패키지를 초기화하고 싶은데, 내가 기존에 설정해둔 환경변수를 끌어오지를 못하는 것이다. 기존에는 intellij에서 명령어 set을 만들고 거기에 환경변수를 설정해주는 방식으로 작업하고 있었다. 이것과 마찬가지로, maven 실행명령어를 만들고 여기에 환경 변수를 설정해주는 작업을 해보려고 한다. 우선 여기 점 세개를 클릭하고, edit 버튼을 누른다. 그러면 저 플러스 버튼을 통해 각 실행환경에 대한 명령어 set을 생성할 수 있다. 나는 maven 명령어를 생성할 것이라서, 이걸 만듦. 그러면 여기 command line을 입력할 수 있는 곳이 있다. 이곳에 내가 실행하고 싶은 명령어 set를.. Error: socket hang up docker에 앱을 실행시켜놓고 post를 보냈는데, 이런 에러가 나오고 있다. 어떻게 해결해야할까? 검색을 하면서 찾아보니, https://stackoverflow.com/a/56023608 Postman : socket hang up I just started using Postman. I had this error "Error: socket hang up" when I was executing a collection runner. I've read a few post regarding socket hang up and it mention about sending a request... stackoverflow.com 이 글에서 이 에러는 port와 관련된 에러라고 한다. 만약에 겹치는 포트 번호를 .. [TIL-2022.10.27] Evaluate란 무엇일까 1.next 13업그레이드 : next13으로 업그레이드를 했다. 아니나 다를까 꽤 많은 오류들이 생겨서, 오류를 수정하는데에 많은 시간을 보냈다. 2.server component : next13으로 업데이트 한 것 중에 주목할 만한 것이 있다면, 이제 Next에서도 server component를 이용할 수 있게 되었다는 것이다. 그런데 아직 나는 server component에 대해서 제대로 공부해보지를 않았다. next 13의 기능도 제대로 이용해볼 겸 이참에 server component도 한번 공부를 해봐야할 것 같다. 3.next-mdn-remote Could not parse expression with acorn: Unexpected token : 업데이트를 하고 났더니, 이런 에러가 난.. [TIL - 2022.10.24] 1.구글 서치 콘솔 등록 : https://parkjeongwoong.github.io/articles/Develop/4 [GitHub Blog 개발기] 구글 검색 등록 & SEO 구현(1) # [GitHub Blog 개발기] 구글 검색 등록 & SEO 구현(1) > [요약] > > - Google Search Console > > - React - SPA > - SPA는 HTML 문서 한 장 > - CSR - SSR > - Helmet > - Next.js ## Google Search Console Google Search Console에 내 사이트를 parkjeongwoong.github.io 오늘은 나의 사이트를 구글 서치 콘솔에 등록하는 작업을 해봤다. 주로 참고했던 자료는 아래의 자료다. ht.. [TIL-2022.10.23] Nextjs에서 라우팅 테스트하기 1.next관련 좋은 영상을 찾았다 : 유튜브에서 next router test 관련 영상을 찾아보다가, 성능 최적화 관련된 영상도 발견했다. 그래서 그냥 여기에 저장해두려고 한다. https://youtu.be/hZr4J42JDoc https://www.youtube.com/watch?v=TOP33Kwa6Qg 물론 라우터 관련 영상도 찾았다. 사실 당장 내가 딱 원하는 내용은 아니었지만, 나중에 충분히 필요할 것 같은 내용이다 https://www.youtube.com/watch?v=uF2lqBluQV8 https://github.com/vercel/next.js/issues/7479 How to mock useRouter? · Issue #7479 · vercel/next.js Question abo.. 이전 1 2 3 4 ··· 26 다음