본문 바로가기

전체 글

(62)
예제코드 아이디와 패스워드가 존재. 기존에 패스워드와 신규 패스워드가 일치하면 변경 public class User { private String id; private String password; } // 1번 public void changePassword(String id, String oldPassword, String newPassword) { User user = userRepository.findById(id); String password = user.getPassword(); if (oldPassword.equals(password)) { user.setPassword(newPassword); } } // 2번 public void changePassword(User user, String new..
코드 함수 널체크
[DDD START!] 6장 응용 서비스와 표현 영역 응용 서비스 구현 표현 영역의 역할 값 검증과 권한 검사 표현영역 : 사용자의 요청을 해석한다. 응용 서비스 : 사용자(클라이언트)가 요청한 기능을 실행한다. 응용 서비스는 사용자의 요청을 처리하기 위해 리포지터리로부터 도메인 객체를 구하고, 도메인 객체를 사용한다. 응용 서비스는 주로 도메인 객체 간의 흐름을 제어하기 때문에 다음과 같이 단순한 형태를 갖는다. public Result doSomeFunc(SomeReq req) { // 1. 리포지터리에서 애그리거트를 구한다. SomeAgg agg = someAggRepository.fineById(req.getId()); checkNull(agg); // 2. 애그리거트의 도메인 기능을 실행한다. agg.doFunc(req.getValue()); //..
[모던 자바 인 액션] 1장 Collctions.sort(inventory, new Comparator() { public int compare(Apple a1, Apple a2) { return a1.getWeight().compareTo(a2.getWeight()); } } inventory.sort(comparing(Apple::getWeight)); 자바 8 설계의 밑바탕을 이루는 세 가지 프로그래밍 개념 1. 스트림 처리(stream processing) - 스크림이란 한 번에 한 개씩 만들어지는 연속적인 데이터 항목들의 모임이다. - 자바 8에서는 java.util.stream 패키지에 스트림 API가 추가되었다. - 스레드라는 복잡한 작업을 사용하지 않으면서도 공짜로 병렬성을 얻을 수 있다. 2. 코드 일부를 API로 ..
[켄트 벡의 구현 패턴] 7장 행위 제어 흐름 : 연산을 여러 단계로 나타낸다. 주요 흐름 : 주요 제어 흐름을 명확하게 표현한다. - 프로그램의 주요 흐름을 명확히 표현하라. 흔치 않은 상황이나 에러 상황은 예외와 조건절을 사용해서 표현하면 된다. 메시지 : 메시지를 보내서 제어 흐름을 표현한다. 선택 메시지 : 여러 선택 사항을 나타내기 위해 메시지 구현자를 다양화 한다. public void displayShape(Shape subject, Brush brush) { brush.display(subject); } 예를 들어 여러 방법 중 한 가지로 그래픽을 표시해야 할 때, 런타임에 선택이 일어남을 나타내기 위해 다형적 메시지를 사용한다. display() 메시지는 런타임에 브러시의 타입에 따라 구현을 선택한다. ScreenBrush..
5장. 리포지터리의 조회 기능(JPA 중심) - 스펙 - JPA 스펙 구현 - 정렬과 페이징 - 동적 인스턴스와 @Subselect 검색을 위한 스펙 스펙(Specification)은 애그리거트가 특정 조건을 충족하는지 여부를 검사한다. public interface Speficiation { public boolean isSatisfiedBy(T agg); } agg -> 검사 대상이 되는 애그리거트 객체 isSatisfiedBy() 메서드는 검사 대상 객체가 조건을 충족하면 true, 아니면 false 리턴 스펙조합 스펙의 장점은 조합에 있다. 두 스펙을 AND 연산자나 OR 연산자로 조합해서 새로운 스펙을 만들 수 있고, 조합한 스펙을 다시 조합해서 더 복잡한 스펙을 만들 수 있다. JPA를 위한 스펙 구현 앞서 예로 보여준 리포티저리 코드는..
ajax값을 전역변수에 담고 싶을 때 ajax는 비동기 async: false 추가해야 함.(기본적으로 true) var value; $.ajax({ url: '', type: 'POST', async: false, dataType: 'json', data: success: function (data) { value = data; }, error: function (request, status, error) { } }) javascript 에서 하나의 함수안에 ajax 처리 후 데이터를 전역에 담아서 jsgrid에넣고 싶은데 데이터 안들어옴 async: false 추가해야 함 var unit_detail = []; $.ajax({ url: type: 'POST', async: false, dataType: 'json', data: succe..
화면에서 map을 쓰고 싶을 때 ES6에서 제공해주는 MAP있음 https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Map 호환 때문에 이거 말고 json으로 데이터 변경해서 사용하렴 서버 public ModelAndView method(AA aa) { ObjectMapper objectMapper = new ObjectMapper(); dataMap.put("bb", objectMapper.writeValueAsString(cc)); } 화면 var data = JSON.parse('bb');