본문 바로가기

728x90

Language/Java

(6)
[자바/스프링 개발자를 위한 실용주의 프로그래밍][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의 양방향 매핑은 순환 참조이다.양방향 매핑이라고 부른다고 해서 순환 참조가 아닌 것은 아니다. 양방향 매핑은 순환 참조 사례 중 하나이다. : 순환 참조가 발생한다는 것은 서로에게 강하게 의존한다는 것사실상 하나의 컴포넌트라는 의미이며 책임이 제대로 구분되어 있지 않다는 의미이다. 따라서 순환 ..
[Java] JDBC & JDBCTemplate & NamedParameterJDBCTemplate 목차 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스 개요 JDBC와 JDBCTemplate 더불어 NamedParameterJDBCTemplate에 대한 간단한 사용법 모음 1.  Test Schema이 글은 JDBC를 사용하여 DataBase에 SQL을 날리는 예제를 적을 것이므로 SQL을 날리게 되는 테이블을 다음과 같이 정의한다.CREATE TABLE `Member` ( `id` int(11) NOT NULL AUTO_INCREMENT, `email` varchar(20) NOT NULL, `nickname` varchar(20) NOT NULL, `birthday` date NOT NULL, `createdAt` datetime NOT NULL, PRIM..
[Java] 변수와 상수와 리터럴 변수 변수(variable), 값을 저장할 수 있는 메모리 상의 공간을 의미함, 이 공간에 저장된 값은 변경될 수 있기 때문에 변수라고 부름 변수의 선언과 초기화 변수의 선언은 다음과 같이 해주면 된다. boolean flag = true; char var1 = 'a'; byte var2 = 1; short var3 = 10; int var4 = 100; long var5 = 100; float var6 = 3.14f; double var7 = 3.14; 변수는 ‘변수 타입’과 ‘변수명’으로 구분된다. 위 예시에서는 boolean, char, byte, short, int, long, float, double이 변수의 타입이 되고 각각 flag, var1, var2, var3, var4, var5, va..

728x90
반응형