Language (61) 썸네일형 리스트형 Python의 Generic을 활용한 Repository Pattern 만들기 (feat, PEP 560) 목차 ">목차 개요 Repository Pattern은 데이터 저장소에 존재하는 데이터들을 마치 Application 메모리상에 존재하는 것처럼 가정하고 데이터 접근과 관련된 구현 사항을 추상화하는 패턴이다. Spring Boot에는 JPARepository라는 것이 있는데 이 추상화된 Repository를 사용하면 특정 Entity에 대해 어떤 방식으로 데이터를 질의할지 이미 구현된 메서드가 제공된다는 것을 체감했을 것이다. 이미 구현되어 있기에 간단한 기능은 다시 구현할 필요가 없으며 더 복잡한 조건이 필요하다면 네이밍 룰에 따라 메서드를 정의해서 사용하면 된다는 것이 특징이다. 프로젝트를 경험할 때마다 Python에는 JPARepository와 같은 역할을 대체하는 라이브러리가 없었기에 Pytho.. [자바/스프링 개발자를 위한 실용주의 프로그래밍][chapter08] : 레이어드 아키텍처를 사용할 때 유념해야하는 것 목차 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스 개요일반적인 개발자들이 생각하는 레이어드 아키텍처란 무엇이며, 그로 인해 발생하는 문제점을 살펴본다. 8.1 레이어드 아키텍처의 최소 조건: 레이어드 아키텍처란?레이어드 아키텍처는 애플리케이션을 레이어로 나누고 각 레이어에 역할을 정한다.대표적인 레이어에는 프레젠테이션, 비즈니스, 인프라스터럭처와 같은 레이어가 있다. : 한 가지 유념해야할 사실레이어드 아키텍처를 만든 사람은 존재하지 않는다.레이어드 아키텍처는 누군가의 철학에 의해 만들어진 아키텍처가 아니다.레이어드 아키텍처는 여러 개발자의 필요에 의해 발전된 아키텍처이다. 그래서 레이어드 아키텍처를 이해하는 깊이와 수준이 개발자마다 천차만별이다. : 레이어드 아키텍처는.. [자바/스프링 개발자를 위한 실용주의 프로그래밍][chapter07] : 서비스란 무엇인가?, 애플리케이션/도메인 서비스는 어떻게 다른가?, 서비스의 본질은 ? 목차 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스개요서비스의 역할은 “도메인 객체나 도메인 서비스라고 불리는 도메인에 일을 위임하는 공간”이어야 한다이는 서비스의 역할을 다음과 같이 크게 3가지 종류의 일을 해야한다는 의미이다.도메인 객체를 불러온다.도메인 객체나 도메인 서비스에 일을 위임한다.도메인 객체의 변경 사항을 저장한다.서비스 컴포넌트가 왜 이러한 역할을 해야하는지 알아보자.도메인 서비스란 무엇이며, 스프링에서는 서비스는 왜 서비스라고 부르는지, 서비스 컴포넌트에 추가적으로 기대하는 역할이나 책임은 무엇인지 파헤쳐 보자. 7.1 Manager: 스프링에서 서비스는 왜 서비스라고 부를까 ?이에 대한 해답은 스프링의 “@Service” 애너테이션이 작성된 실제 코드.. [자바/스프링 개발자를 위한 실용주의 프로그래밍][chapter06] : 스마트 UI, 트랜잭션 스크립트, 레이어드 아키텍처, 서비스 컴포넌트는 비즈니스 로직이 아니다, 애플리케이션의 본질 목차 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스 개요 이 챕터는 스프링 개발자가 많이 저지르는 “구조적 실수”에 대해서 다룬다. 개발에는 정답이 없지만 “이렇게 개발하면 유지보수나 확장성 관점에서 좋지 못하다”라고 알려진 안티패턴은 존재한다. 소개할 안티패턴은 기초적이지만 누구나 실수할 법한 내용이다. 6.1 스마트 UI: 스마트 UI 패턴은 에릭 에반스의 저서 도메인 주도 설계에서 소개돼 유명해진 안티패턴이다.스마트 UI 패턴은 다음과 같은 특징을 가진 코드를 말한다.스마트 UI는 데이터 입출력을 UI 레벨에서 처리한다.스마트 UI는 비즈니스 로직도 UI 레벨에서 처리한다.스마트 UI는 데이터 베이스와 통신하는 코드도 UI 레벨에서 처리한다. : 백엔드 개발자가 왜 .. [자바/스프링 개발자를 위한 실용주의 프로그래밍][chapter05] : 순환참조, 순환참조 문제, 순환참조 해결법 목차 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스개요: 순환참조란 ?두 개 이상의 객체나 컴포넌트가 서로를 참조함으로써 의존관계에 사이클이 생기는 상황을 말한다.예를 들어 객체 A가 B 객체를 참조하고, 객체 B가 다시 객체 A를 참조하는 양방향 참조는 대표적인 순환참조의 예이다.이러한 순환 참조는 소프트웨어 설계에서 자주 볼 수 있는 대표적인 안티패턴 중 하나이다. : ❗JPA의 양방향 매핑은 순환 참조이다.양방향 매핑이라고 부른다고 해서 순환 참조가 아닌 것은 아니다. 양방향 매핑은 순환 참조 사례 중 하나이다. : 순환 참조가 발생한다는 것은 서로에게 강하게 의존한다는 것사실상 하나의 컴포넌트라는 의미이며 책임이 제대로 구분되어 있지 않다는 의미이다. 따라서 순환 .. [자바/스프링 개발자를 위한 실용주의 프로그래밍][chapter03] :덕 타이핑,인터페이스,행동과역할,메서드와함수 목차 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스 개요: 객체가 행동해야 한다는 것은 무슨 의미이며, 어떻게 해야 객체를 행동하게 만들 수 있을까 ?답은 TDA 원칙을 적용하는 것이다. : TDA 원칙은 객체를 행동하게 만든다이유는 “묻지 말고 시켜라” 라는 말 자체가 객체에 어떤 행동을 하라고 조언하는 것이기 때문이다.하지만 TDA 원칙은 객체가 이미 존재한다는 것을 전제로 사용할 수 있는 원칙이다.이제 막 객체를 설계하는 단계라면 어떻게 행동에 집중하는 객체를 만들 수 있을까? : 행동 위주의 사고를 하는 편이 객체지향에서는 훨씬 유리하다고 볼 수 있다.객체를 구분 짓는 요인은 데이터가 아닌 행동이다.객체를 만들 때는 데이터보다는 행동에 집중해야한다. 데이터가 객체를.. [자바/스프링 개발자를 위한 실용주의 프로그래밍][chapter02] - VO,DTO, DAO, SO 이 내용은 자바/스프링 개발자를 위한 실용주의 프로그래밍chapter2의 내용을 정리한 것입니다. 목차 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스 개요객체의 종류에 관한 문제는 개념을 이해하지 않고 외우려고만 할 때 곧잘 발생한다.납득이 안 가는 설명이 있음에도 암기해야 하는게 많아 일단 외우는 데 집중하다 보니 정신을 차리고 보면 누군가 설명해둔 내용을 그대로 읊을 줄밖에 모르게 되는 것이다.또한, VO나 DTO를 왜 써야 하는지도 모르겠지만 일단 좋다고 하니 진행중인 프로젝트에 적용해본다. 그 다음 이런 걸 VO, DTO라고 부른다고 하니까 그러려니 하고 클래스를 만들며 클래스 이름 뒤에 접미어로 VO, DTO를 넣게된다.이러한 용어 정의에서 어떤 내용이 잘못됐.. [자바/스프링 개발자를 위한 실용주의 프로그래밍][chapter01] - 절차지향과객체지향 / 객체지향의 본질 / TDA 원칙 목차 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스 Reference: http://aladin.kr/p/0RDmT 자바/스프링 개발자를 위한 실용주의 프로그래밍자바 개발자가 코틀린 같은 신생 언어를 다룰 수 있게 된다고 해서 개발을 더 잘하게 되는 것은 아니다. 소프트웨어 개발 능력을 키우고 싶다면 개발 그 자체를 공부하고 기초적인 설계 원리를www.aladin.co.kr 개요객체지향에서는 복잡한 문제를 역할과 책임에 따라 개별 “객체”로 분해한다. 그렇게 분해된 각기 다른 특성과 기능을 가진 수 많은 객체들이 상호작용하고 협력해 소프트웨어가 당면한 문제를 해결한다. 절차지향과 비교하기: 순차지향과 절차지향의 차이점은 ?순차지향 프로그래밍의 “Sequential”.. 이전 1 2 3 4 ··· 8 다음