본문 바로가기

전체 게시글376

[Spring] JSON 형식의 데이터로 변환하기 JSON으로 변환하기 시스템이 복잡해지면서 다른 시스템과 정보를 주고받을 일이 발생하는데, 이때 데이터 교환 포맷으로 JSON을 사용할 수 있다. 검색한 글 목록을 JSON 형식의 데이터로 변환하여 브라우저에 출력하려면 어떻게 해야할까? [{ "seq": 2, "title": "zzzxcxzcz", "writer": "xx", "content": "\t\tccczxczxcxzcc", "regDate": 1682607600000, "cnt": 0 }, { "seq": 1, "title": "1112332131", "writer": "22", "content": "\t\t\t5141332144\t33134123", "regDate": 1682607600000, "cnt": 0 }] Jackson2 라이브러리.. 2023. 4. 30.
[Spring] 어노테이션 기반의 예외처리 / @ControllerAdvice와 @ExceptionHandler 어노테이션을 이용한 예외처리 스프링에서의 예외처리 스프링에서는 @ControllerAdvice와 @ExceptionHandler 어노테이션을 이용해서 컨트롤러의 메서드 수행 중 발생하는 예외를 일괄적으로 처리할 수 있다. 먼저, presentation-layer.xml 파일에 예외 처리 관련 어노테이션 사용을 위한 설정(Namespace)을 추가한다. 스프링 설정 파일에 mvc 네임스페이스를 추가하고, 아래와 같이 앨리먼트를 설정해야 한다. 이는 예외 처리 클래스에서 예외 처리 메서드 위에 @ExceptionHandler 어노테이션을 사용했을 때 인식시키기 위한 작업이다. 예외 처리 클래스 작성 예외의 종류에 따라서 적절한 예외 화면이 서비스되도록 예외 처리 클래스를 작성해보자. 먼저 클래스 위에 선언된 @ControllerAdvi.. 2023. 4. 29.
[Spring] 두 개의 레이어로 나눈 2-Layered 아키텍처 일반적으로 프레임워크 기반의 웹 프로젝트를 보면 아래와 같이 두 개의 레이어로 나누어 시스템을 개발한다. 이를 '2-Layered' 아키텍처 스타일이라고 한다. ConextLoaderListener 등록 Listener는 Servlet이나 Filter 클래스와 마찬가지로 web.xml 파일에 등록한다. 태그 하위에 2023. 4. 29.
[Spring] Controlle가 직접 DAO 객체의 메서드를 호출하면 안되는 몇가지 이유에 대해서 Controller는 매개변수를 통해 전달된 DAO 객체를 이용해 사용자가 요청한 로직 처리 아래 코드를 살펴보자. @Controller @SessionAttributes("board") public class BoardController { @RequestMapping("/insertBoard.do") public String insert(BoardVO vo, BoardDAO boradDAO) { boradDAO.insertBoard(vo); return "redirect:getBoardList.do"; } @RequestMapping("/updateBoard.do") public String updaate(@ModelAttribute("board") BoardVO vo, BoardDAO boardDA.. 2023. 4. 29.
refactor: 상속과 인터페이스 활용 해당 글은 NEXTSTEP 자바 플레이그라운드 with TDD, 클린 코드를 통해서 새롭게 배우고 내용을 기록한 글입니다. 1. 상황 가정 우리는 렌터카를 운영하고 있다. 현재 보유한 차량의 목록과 대수는 아래와 같다. Sonata : 2대 Avante : 1대 K5: 2대 차량을 예약할 때는 여행할 목적지의 이동거리를 입력받는다. 이때, 이동거리를 활용해 차량 별로 필요한 연료를 주입한다. 차량별 연비는 아래와 같다. Sonata : 10km/리터 Avante : 15km/리터 K5 : 13km/리터 2. 공통 기능을 구현할 클래스의 메서드 목록을 나열해보자. 리터당 이동 거리. 즉, 연비 ==> abstract double getDistancePerLiter(); 여행하려는 거리 ==> abstrac.. 2023. 4. 27.
[Java] 상태 데이터를 get하지 말고 메시지를 보내라. 해당 글은 NEXTSTEP 자바 플레이그라운드 with TDD, 클린 코드를 통해서 새롭게 배우고 내용을 기록한 글입니다. 상태 데이터를 get하지 말고, 메시지를 보내라 상태 데이터를 get 하지말라는 말의 의미를 이해해보자. public class Winners { private final List cars; private List findWinners(int maxPositionValue) { List winners = new ArrayList(); for( Car car : cars ) { if( car.getPosition() == maxPositionValue) winners.add(car); } return winners; } } 위 코드를 이해해보자. 'finWinners' 메서드는 최대 .. 2023. 4. 25.