DDD (Domain Driven Design) DDD vs OOP? OOP : 패러다임(함수형 등) DDD : 방법론(TDD, BDD 등) DDD와 다른 TDD, BDD의 차이점으로 DDD는 개발자 외에도 기획자, 도메인 전문가 등 프로덕트 팀 단위의 역량이 필요한 협업 방법론이라고 할 수 있음. 객체지향의 역사는 길지만 개인적인 느낌으로는 best practice가 DDD라고 생각되어 정리하게 되었다. DDD 특징 도메인의 모델과 로직에 집중 System, Infrastructure 등 기술적인 부분이 아닌 핵심 도메인 비즈니스에 집중하는 방법론 보편적 언어 사용 프로덕트 팀 구성원이 동일한 언어를 사용 Software Entity와 Domain 간 개념의 일치 코드가 곧 설계를 의미 Entity 클..
전체 글 검색 결과
API 서버를 개발하게 되면 App, Frontend 그리고 동료 Backend 개발자와 API 형상을 공유하고 편하게 테스트할 수 있는 API 문서를 제공해주는 것이 협업의 첫 걸음이라고 할 수 있을 것 같습니다. API 문서를 만들기 위해 Swagger나 REST Docs를 많이 사용하는데요. 본 글에서는 자주 비교되곤 하는 Swagger와 REST Docs의 장점만을 뽑아낸 OpenApi Spec.(OAS) 기반의 API 문서화 방법을 공유드리고자 합니다. 블로그에 작성된 모든 예제는 github에 있으니 실제로 돌려보실 수 있습니다. 1. API 문서화 도구 1.1. Swagger Swagger는 Controller에 몇 가지의 Annotation을 달기만 해도 API 문서가 만들어지는 편리함이 ..
JPA inheritance bulk-id strategies JPA에서 Inheritance를 사용한 경우 batch delete 구현 방법을 다뤄봅니다. Links에 있는 Hibernate post를 보시면 좀더 상세한 글을 확인할 수 있습니다. 깃헙 원문으로 가시면 실제 소스코드도 확인하실 수 있습니다. 테스트 환경 H2 DB MySQL 5.7.24 class 상속 구성 Person 클래스를 상속하는 Doctor, Student가 있습니다. JOINED Inheritance를 사용하였습니다. @Entity(name = "person") @Inheritance(strategy = InheritanceType.JOINED) open class PersonEntity( @Id @GeneratedValue..
인증 분야에서 쓰이는 CI, DI에 대한 용어 정리입니다. CI(Connecting Information)는 웹상에서 자신을 증명하는 글로벌한 식별값, A 사이트와 B 사이트가 서로 동일하게 갖기 때문에 연계가 가능하다. DI(Duplication Information)는 서비스마다 다르게 발급되는 정보, 만약 어떤 게임에서 내 계정을 여러 개 만들면 그 계정들의 DI 값은 모두 동일하다. 서비스마다 다르기 때문에 연계가 불가능하다. 참고자료: http://www.kisa.or.kr/uploadfile/201006/201006221610240464.pdf
실무에서 OAuth2 로그인 구현을 위해 spring-security 그룹의 spring-security-oauth2-client 프레임워크를 이용하고 있습니다. spring-security-oauth2-client 프레임워크는 추후 자세히 다뤄보겠으며 이번엔 실무를 하면서 겪은 Authorization Endpoint 커스터마이징 내용을 중점적으로 다루려 합니다. 본 포스트에 언급된 프레임워크의 dependency는 아래와 같습니다. org.springframework.boot:spring-boot-starter-security:2.2.1.RELEASE org.springframework.security:spring-security-oauth2-client:5.2.1.RELEASE 작업 개요 사용자가 ..