일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- test
- CS
- 최소 신장 트리
- Deadlock
- 모던자바
- 약수
- Python
- Spring
- java
- 파이썬
- 알고리즘
- 백준
- BOJ
- 다이나믹 프록시
- 스프링 시큐리티
- proxy
- 객체지향
- redis
- 자바
- OS
- 프록시
- 모던 자바 인 액션
- MST
- 운영체제
- Reflection
- 스프링
- 리플렉션
- Junit5
- 문자열
- spring security
- Today
- Total
목록java (19)
Dev 달팽이 @_''
객체지향원칙 - SOLID실무에서 아키텍트 업무를 맡게 되면서(아직 이르지만..) DDD, 헥사고널 아키텍처에 대해 좀 더 깊이 있는 이해가 필요하게 되었다. 기본부터 다시 잡는 다는 생각으로 OOP, 디자인패턴부터 다시 다져보려 한다...객체 지향 설계객체지향원칙을 지키면서 설계하는 건 단순 "깔끔한 코드" 작성을 위해서는 아니다. 객체 지향 설계를 한다는 것은 확장이 쉽고, 높은 응집도와 낮은 결함도로 인해 변경이 전체 시스템에 미치는 영향을 줄이고, 리팩토링과 유지보수를 쉽게 설계한다는 것이다. SOLID는 이러한 설계를 할 수 있도록 도움을 주는 지침이다.SOLID란?객체지향 프로그래밍(OOP)의 5가지 핵심 설계 원칙, 유지보수성과 확장성이 뛰어난 소프트웨어를 설계하기 위한 개념S - Singl..

[리뷰] 테스트 주도 개발 시작하기 실무에서 개발을 하다보니 테스트가 중요한 지를 깨달았다. 특히 이번 프로젝트처럼 규모가 어느정도 되는 시스템일 경우는 더더욱 중요한 걸 느꼈다. 내가 맡은 서버가 단말 중개 서버(Bridge)였기 대부분의 인입이 프로토콜의 형태로 들어왔고, 비즈니스 로직도 커서 개발하면서 테스트를 진행하는 건 꿈도 못꾸고 있었다. 그렇다 보니 유닛 테스트 부터 통합 테스트까지 제대로 검증을 못한 채로 필드 테스트를 진행했다. 결과는 역시나 .. 여기 저기서 에러가 뻥뻥 터지고 수정하고 터지고 수정하고 오픈까지 이 일의 연속이었다... 그 때 난 이런 생각을 했다. `이런 시스템은 테스트를 어떻게 하지? 개발하면서 테스트를 충분히 했다면 좀 더 수월하지 않았을까? 내가 다시 돌아간다면 ..

3.1 람다란 무엇인가? 람다 표현식은 메서드로 전달할 수 있는 익명 함수를 단순화한 것이라고 할 수 있다. 람다 표현식에는 이름은 없지만 파라미터 리스트, 바디, 반환 형식, 발생할 수 있는 예외 리스트는 가질 수 있다. 람다의 특징 익명 - 보통의 메서드와 달리 이름이 없으므로 익명이라고 표현한다. 구현해야 할 코드에 대한 걱정거리가 줄어든다. 함수 - 람다는 메서드처럼 특정 클래스에 종속되지 않으므로 함수라고 부른다. 하지만 메서드처럼 파라미터 리스트, 바디, 반환 형식, 가능한 예외 리스트를 포함한다. 전달 - 람다 표현식을 메서드 인수로 전달하거나 변수로 저장할 수 있다. 간결성 - 익명 클래스처럼 많은 자질구레한 코드를 구현할 필요가 없다. 기존의 Comparator 객체의 구현 Compara..

동작 파라미터화(behavior parameterization)란 아직은 어떻게 실행할 것인지 결정하지 않은 코드 블록을 의미한다. 이 코드 블록의 실행은 나중으로 미뤄진다. 2.1 변화하는 요구사항에 대응하기 예제 코드를 점차 개선하면서 유연한 코드를 만들어보자. 2.1.1 첫 번째 시도 : 녹색 사과 필터링 public static List filterGreenApples(List inventory) { List result = new ArrayList(); for (Apple apple : inventory) { if (GREEN.equals(apple.getColor()) { result.add(apple); } } return result; } 녹색 사과를 필터링하는 메서드를 만들었다. 그러나 ..