본문 바로가기

전체 글

(404)
[Spring MVC] DTO(Data Transfer Object)/클래스 생성 [DTO(Data Transfer Object)] : 마틴 파울러가 'Patterns of Enterprise Application Architecture'라는 책에서 처음 소개한 엔터프라이즈 애플리케이션 아키텍처 패턴 중 하나 : 데이터를 전송하기 위한 용도의 객체(클라이언트에서 서버 쪽으로 전송하는 요청 데이터를 전달 받을 때, 서버에서 클라이언트 쪽으로 전송하는 응답 데이터를 전송하기 위한 용도로 사용) [DTO 필요 이유] 1) DTO 클래스를 이용한 코드의 간결성 : 요청 데이터를 하나의 객체로 전달 받는 역할 >> 요청 데이터가 많을 경우 추가되는 파라미터가 굉장히 많을 수 있기에 하나로 전달받으면 코드가 간결해질 수 있음 2) 데이터 유형성 검증의 단순화 * 유효성 검증 : 서버 쪽에서 유효..
[JSON] JSON 직렬화/역직렬화 JSON 역직렬화(Deserialization) : 클라이언트 쪽에서 JSON 형식의 데이터를 서버 쪽으로 전송하면 서버 쪽의 웹 애플리케이션은 전달 받은 JSON 형식의 데이터를 DTO 같은 Java 객체로 변환하는 것을 의미 : JSON >> Java 객체 JSON 직렬화(Serialization) : 서버 쪽에서 클라이언트에게 응답 데이터를 전송하기 위해 DTO 같은 Java 객체를 JSON 형식으로 변환하는 것을 의미 : Java 객체 >> JSON
[JSON] JSON이란? [JSON] JSON(JavaScript Object Notation); 다양한 종류의 데이터를 활용하는 것이 중요한데, 어떤 언어든지 데이터 구조와 실제 데이터를 다른 어어 및 플랫폼에서 해석 가능한 형식으로 전송할 수 있도록 하는 데이터 교환 포맷을 의미 전송 가능 조건 (둘 중 하나) 1) 수신자와 발신자가 같은 프로그램을 사용 2) 문자열처럼 범용적으로 읽을 수 있어야 함 변환 메서드 - JSON.stringify : Object type을 JSON으로 변환(JSON으로 변환된 객체의 타입은 문자열) >> 직렬화 - JSON.parse : JSON을 Object type으로 변환 데이터 유형 1) 문자열 2) 숫자 3) 부울(참/거짓) 4) Null 5) 객체 6) 배열 문자열 : 백슬래시(\) ..
[Spring MVC] Spring MVC 동작 방식 & 구성 요소 요약) 1. 핸들러 조회 : 핸들러 매핑을 통해 URL에 매핑된 핸들러(컨트롤러) 조회 2. 핸들러 어댑터 조회 : 핸들러(컨트롤러)를 실행할 수 있는 핸들러 어댑터 조회 3. 핸들러 어댑터 실행 4. 핸들러 실행 : 핸들러 어댑터가 실제 핸들러를 실행 5. ModelAndView 반환 : 핸들러 어댑터는 핸들러가 반환하는 정보를 MddelAndView로 변환해 반환 6. viewResolver 호출 7. View 반환 : viewResolver는 뷰의 논리 이름을 물이 이름으로 바꾸고 렌더링 역할을 담당하는 뷰 객체 반환 8. 뷰 렌더링 : 뷰를 통해 뷰를 렌더링 풀이) 1) 클라이언트가 요청을 전송하면 DispatcherServlet 클래스에 요청이 전달 2) DispatcherServlet은 클라이..
[Spring MVC] Spring MVC란? Spring MVC : 클라이언트의 요청을 편리하게 처리해주는 프레임워크 : 우리가 만들게 될 샘플 애플리케이션은 Spring MVC가 제공해주는 기능을 이용해서 만듦 참고) Spring에서 지원하는 모든 기능을 Spring Framework라 하며, Spring의 모듈 중 '서블릿 API'를 기반으로 클라이언트의 요청을 처리하는 모듈이 Spring Web MVC라 하며, 이것을 Spring MVC라고 부름. [MVC 의미] MVC - Model : 클라이언트의 요청을 전달받아 처리한 후 작업의 결과 데이터를 클라이언트에게 응답으로 돌려주는 작업의 처리 결과 데이터를 의미 * 서비스 계층 : 클라이언트의 요청 사항을 구체적으로 처리하는 영역 * 비즈니스 로직 : 요청사항을 처리하기 위해 Java 코드로 ..
[Java] Math.sqrt() 제곱근(루트) 구하기 Math.sqrt() : 인자값에 대한 루트값을 반환하는 함수 사용방법 Math.sqrt(대상 숫자) 타입 : int, float, double, long 등 숫자타입만 가능 System.out.println(Math.sqrt(9)); System.out.println(Math.sqrt(100)); System.out.println(Math.sqrt(-1)); //출력결과 3 10 NaN * 음수의 제곱근은 허수로서 존재하지 않기에 루트 안에 음수값은 들어갈 수 없음. 따라서 Math.sqrt(대상숫자)에서 대상 숫자가 음수가 될 경우 출력값은 NaN이 되며 '숫자가 아니다'라는 의미의 에러가 발생한다.
[Java] 예외처리 try~catch~finally try~catch try{ // 일반적인 코드 입력 // 만약 실행 중 try 문에서 에러가 발생할 경우 catch 문으로 이동하며, 문제가 없을 경우 try문을 실행 throw new Exception(); //try 문에서 강제 예외 처리를 하고 싶을 경우 해당 코드를 통해 Exception을 강제할 수 있음 } catch (Exception e){ //try문에서 오류가 날 경우 catch문을 실행하며, try에서 에러가 없다면 실행하지 않음 } : 예외 처리의 경우 기본적으로 try~catch문을 사용함 : try문에서 throw new Exception()을 사용하여 강제로 Exception 발생이 가능 try~catch~finally try{ // 일반적인 코드 입력 // 만약 실행 중 try..
[Spring Core] AOP - 애너테이션(Annotation) 이용 [@AspectJ] : @AspectJ는 애너테이션이 있는 일반 Java 클래스로 관점을 선언하는 스태일 : @AspectJ 스타일은 AspectJ 5 릴리스의 일부로 AspectJ 프로젝트에 의해 도입되었으며, 스프링은 pointcut 구문 분석 및 일치를 위해 AspectJ가 제공하는 라이브러리를 사용해 AspectJ 5와 동일한 애너테이션을 해석 : AOP 런타임은 여전히 순수한 스프링 AOP이며, AspectJ 컴파일러나 위버에 의존하지 않음 @AspectJ 지원 활성화) : @AspectJ aspect 사용을 위해 @AspectJ aspect에 기반한 Spring AOP 설정과 이러한 aspect에 의해 조언되는 자동 프록시 빈에 대한 Spring 지원을 활성화 해야 함 : XML 또는 Java..