post-thumbnail

04 아키텍처 - 4.2

2024년 1월 10일
·
0개의 댓글
·
post-thumbnail

04 아키텍쳐 - 4.1

2024년 1월 8일
·
0개의 댓글
·

도메인 특화 언어

관련 특정 분야에 최적화된 프로그래밍 언어해당 분야 또는 도메인의 개념과 규칙을 사용언어 지향 프로그래밍의 일종ex : Junit, 쿼리DSL언어와 변환 엔진을 갖추면 지루한 작업을 일일이 수행할 필요가 없어, 해당 DSL과 관련된 소프트웨어 개발의 특정 부분에서 훨씬

2024년 1월 3일
·
0개의 댓글
·
post-thumbnail

17 냄새와 휴리스틱

리팩터링이 필요하다고 생각되는 것들에 대해 정리하였다주석은 코드와 설계에 기술적인 설명을 부연하는 수단이다쓸모없어질 주석은 아예 달지 않는 것이 가장 좋고 달려있다면 삭제하는 편이 좋다주석은 코드만으로 다하지 못하는 설명만 적는다주석을 달거라면 최대한 간결하고 명료하게

2023년 12월 30일
·
0개의 댓글
·
post-thumbnail

16 serialDate 리팩터링

날짜를 표현하는 SerialDate 클래스를 살펴보고 리팩터링 한다SerialDateTests라는 클래스가 있지만 모든 경우를 커버하지 않기 때문에 단위 테스트 케이스를 구현한다새 단위 테스트는 92% 정도의 코드 커버리지를 가진다테스트 케이스를 통해 일부를 변경한다클

2023년 12월 30일
·
0개의 댓글
·
post-thumbnail

15 JUnit 들여다보기

자바 프레임워크 중에서 가장 유명한 jUnit 프레임워크에서 가져온 코드를 평가한다JUnit은 저자가 많지만 시작은 켄트 벡과 에릭 감마이다ComparisonCompactorTest.java두 문자열을 받아 차이를 반환하는 코드ComparisonCompactor 모듈에

2023년 12월 27일
·
0개의 댓글
·
post-thumbnail

14 점진적인 개선

점진적인 개선을 보여주는 사례를 연구한다Args 생성자에 (입력으로 들어온) 인수 문자열과 형식 문자열을 넘겨 Args 인스턴스를 생성한 후 Args 인스턴스에다 인수 값을 질의한다이렇게 길어진 이유는 자바는 정적 타입 언어라서 타입 시스템을 만족하려면 많은 단어가 필

2023년 12월 17일
·
0개의 댓글
·
post-thumbnail

13 동시성

동시성이 필요한 이유와 그 어려움, 그리고 동시성을 유지하면서 깨끗한 코드를 작성하고 테스트하는 방법과 문제점에 대해 알려준다동시성 = 결합을 없애는 전략 \- 무엇과 언제를 분리하는 전략스레드가 하나인 프로그램은 무엇과 언제가 서로 밀접하다 \- 단일 스레드 프로

2023년 12월 17일
·
0개의 댓글
·
post-thumbnail

12 창발성

창발적 설계에 대하여 설명한다창발성이란 하위 계층에는 없는 행동이 상위 계층에서 자발적으로 돌연히 출연하는 성질켄트 벡은 단순한 설계 규칙 네 가지가 소프트웨어 설계 품질을 크게 높여준다고 이야기한다 \- 1. 모든 테스트를 실행한다 \- 2.중복을 없앤

2023년 12월 17일
·
0개의 댓글
·
post-thumbnail

11 시스템

시스템 수준에서도 코드를 깨끗하게 유지하기 위한 방법에 대해서 설명한다제작(construction)과 사용(use)는 다르다소프트웨어 시스템은 (애플리케이션 객체를 제작하고 의존성을 서로 '연결'하는) 준비 과정과 (준비 과정 이후에 이어지는) 런타임 로직을 분리해야

2023년 12월 17일
·
0개의 댓글
·
post-thumbnail

10 클래스

JAVA Convention에 따르면 가장 먼저 변수 목록이 나온다.static public --> static private --> private 인스턴스 --> (public은 필요한 경우가 거의 없다) 변수목록 다음에는 공개 함수가 나온다. 비공개 함수는 자신을

2023년 12월 17일
·
0개의 댓글
·

Null-safety

2023년 12월 17일
·
0개의 댓글
·

SpEL

2023년 12월 17일
·
0개의 댓글
·

데이터 바인딩

2023년 12월 17일
·
0개의 댓글
·

Resource / Validation

2023년 12월 17일
·
0개의 댓글
·
post-thumbnail

IoC 컨테이너

의존 관계 주입(Dependency Injection)이라고 하며 어떤 객체가 사용하는 의존객체를 직접 생성하지 않고 외부로부터 주입 받아 사용하는 방법BeanFactory : 스프링 빈 컨테이너에 접근하기 위한 최상위 인터페이스, 애플리케이션 컴포넌트의 중앙 저장소빈

2023년 12월 17일
·
0개의 댓글
·
post-thumbnail

9장 단위 테스트

단위 테스트의 중요성과 규칙에 대해 설명한다실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다더러운 테스트 코드는 없느니만

2023년 12월 13일
·
0개의 댓글
·
post-thumbnail

8장 경계

소프트웨어 경계를 깔끔하게 처리하는 기법을 알 수 있다인터페이스 제공자는 적용성을 최대한 넓히려 한다인터페이스 사용자는 자신의 요구에 집중하는 인터페이스를 바란다이러한 양방향의 차이로 인해 시스템 경계에서 문제가 생길 수 있다외부 라이브러리 중 컬렉션이 있고 이중 자주

2023년 12월 11일
·
0개의 댓글
·
post-thumbnail

7장 오류 처리

예외 처리에 관한 가이드를 제공해준다오류를 코드로 처리하게 되면 코드의 가독성은 낮아지고 계층의 깊이는 심하게 높아진다오류 코드로 처리하는 경우 개발자가 작성하는 것이기 때문에 실수하는 경우 프로그램이 멈출 수 있다예외 처리를 통해 코드를 분리하고 각 개념을 읽기 쉽게

2023년 12월 11일
·
0개의 댓글
·
post-thumbnail

6장 객체와 자료구조

새로운 자료 타입 추가에 대한 유연성이 필요할 때는 객체, 새로운 동작에 대한 유연성이 필요하면 자료 구조와 절차적인 코드를 사용하는것이 좋다상황에 맞는 방법을 선택하라구현을 감추려면 추상화가 필요하다추상 인터페이스를 제공해 사용자가 구현을 몰느채 자료의 핵심을 조작할

2023년 12월 11일
·
0개의 댓글
·