일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- #JVM
- 인텔리제이
- 이클립스
- 설정
- Plugins
- Spring
- #자바
- springboot
- #오라클
- 소스코드 맵
- log4j
- 오라클
- Oracle
- html
- CodeGlance
- #java
- IntelliJ
- 환경설정
- 스프링부트
- Eclipse
- #자바가상머신
- 플러그인
- #이클립스
- #Oracle
- Like
- #eclipse
- 설치
- mariadb
- log4j2
- 스프링
- Today
- Total
목록프로젝트 (11)
커피와 개발자
타임리프(Thymeleaf) 타임리프(Thymeleaf)는 View Templete Engine으로 JSP, Freemarkerd와 같이 서버에서 클라이언트에게 응답할 브라우저 화면을 만들어주는 역할을 합니다. Thymeleaf의 장점 : 코드를 변경하지 않기 때문에 디자인 팀과 개발 팀 간의 협업이 편해진다. JSP와 달리 Servlet Code로 변환되지 않기 때문에 비즈니스 로직과 분리되어 오로지 View에 집중할 수 있다. 서버상에서 동작하지 않아도 되기 때문에 서버 동작 없이 화면을 확인할 수 있다. 때문에 더미 데이터를 넣고 화면 디자인 및 테스트에 용이하다. Thymeleaf와 Spring Boot ※ 타임리프의 장점 때문에 Spring에서도 Spring Boot와 타임리프를 함께 사용하는 ..
에러 페이지(Error page) 웹 서비스 페이지를 개발하다 보면 404(페이지를 찾을 수 없는 오류), 500(서버 내 오류)등이 발생할 수 있습니다. 서블릿에서는 예외 처리 페이지를 처리를 하기 위해 다음과 같은 과정이 필요합니다. WebServerCustomizer 만들기 예외 종류에 따라서 ErrorPage를 추가 예외 처리용 컨트롤러 ErrorPageController를 만들기 Spring Boot는 이러한 과정을 기본적으로 제공하며, whitelabel error page를 제공합니다. ErrorPage를 자동으로 등록하며, /error라는 경로로 기본 오류 페이지를 설정 new ErrorPage("/error") , 상태 코드와 예외를 설정하지 않으면 기본 오류 페이지로 사용 서블릿 밖으로..
예외처리(Exception Handling) 스프링은 예외처리를 위해 다양하고 막강한 어노테이션을 제공하고 있습니다. 예외처리 핸들링(Exception Handling)은 일관성 있는 코드 스타일을 유지하면서 Exception을 처리하는 방법입니다. Error Response 객체 Error Response 객체는 항상 동일한 ErrorResponse를 가져야 합니다. 그렇지 않으면 클라이언트에서 예외 처리를 항상 동일한 로직으로 처리하기 어렵습니다. Error Response 객체를 유연하게 처리하기 위해서 Map 형식으로 처리할 때도 있습니다. (비추천) Error Response 객체 Example : 에러 코드는 enum 타입으로 한 곳에서 관리합니다. 에러 코드가 전체적으로 흩어져있을 경우 코드..
Mybatis Mybatis는 객체지향 언어인 자바의 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 할 수 있게 도와주는 개발 프레임워크이며, 복잡한 JDBC 코드를 걷어내며 깔끔한 소스코드를 유지, 자바의 객체(Object)와 SQL 사이에서 자동 맵핑을 도와주는 프레임워크로 XML 형태로 쓰인 JDBC 코드라고 생각해도 될 만큼 JDBC의 모든 기능을 제공합니다. pom.xml - dependency 적용 : pom.xml 파일에 mybatis-spring-boot-starter dependency를 적용합니다. application.yml - mybatis 설정 코드 추가 : ### mybatis mybatis: # xml파일 result type에 패키지명을 생략할 수 있도록 alias 설정 typ..
JDBC(Java DataBase Connectivity) JDBC(Java DataBase Connectivity)는 자바 프로그램이 DBMS에 일관된 방식으로 접근할 수 있도록 API를 제공하는 자바 클래스들의 모임입니다. 즉 데이터베이스에 연결 및 작업을 하기 위한 JAVA의 표준 인터페이스입니다. JDBC의 특징 : JDBC는 함수 호출용 SQL 인터페이스입니다. JDBC는 ANI SQL-92 표준을 지원합니다. JDBC는 공통된 SQL 인터페이스를 바탕으로 합니다. JDBC는 익히고 사용하기 쉽습니다. MairaDB : MariaDB는 MariaDB사가 제작한 오픈소스 *RDMBS소프트웨어이며, MySQL코드 기반으로 한 오픈소스 RDBMS입니다. DBMS란(DataBase Management ..
아규먼트 리졸버(Argument Resolver) Controller로 들어온 파라미터를 가공하거나 수정 기능을 제공하는 객체입니다. Argument Resolver를 Controller단에서 사용하면 중복 코드(HttpSession에서 세션 로드, HttpServletRequest에서 요청 Parameter, URL 및 IP 정보 로드 등)를 깔끔하게 처리할 수 있습니다. 커스텀 어노테이션(Custom Annotation) 작성 : annotation 패키지를 생성하고 Params.java 파일에 사용자 어노테이션 @interface를 작성합니다. @Target : 어노테이션이 생성될 수 있는 위치를 지정합니다. 파라미터(PARAMETER) 면 메서드의 파라미터로 선언된 객체에서만 사용 가능합니다. @..
jsonView Ajax를 사용해서 통신하는 경우 클라이언트에서 컨트롤러(Controller)로 요청을 했을 때, 제이슨(json)형식으로 return 받기 위해서는 여러 방법이 있을 수 있습니다. Controller return type을 String으로 하고, 별도의 Gson 라이브러리나 Json API를 사용해 parsing해서 json 형식으로 return합니다. MappingJackson2JsonView를 사용해서 ModelAndView를 json 형식으로 반환해 return합니다. Spring Bean의 설정 없이 ModelAndView mav = new ModelAndView("jsonView");와 같은 코드를 작성하여 실행하게 되면 Error resolving template "jsonV..
AOP(Aspect Oriented Programming) AOP(Aspect Oriented Programming)는 관점 지향 프로그래밍입니다. 어떠한 기준을 정하고, 관점을 나누어서 각 관점 별로 모듈화를 하여 사용하는 방식입니다. 비즈니스 로직과 공통 기능으로 구분을 하고, 공통 기능은 필요한 시점에 불러와서 적용하는 프로그래밍 방법입니다. 관심 지향 프로그래밍은 프로그램 로직을 명확한 부분들(이른바 관심사)로 나누는 것을 수반합니다. 거의 모든 프로그래밍 패러다임들은 관심사들을 별도의 독립적인 엔티티로 그룹화하고 캡슐화하는 것을 어느 정도는 지원하며, 이는 이러한 관심사들을 구현, 추상화, 합성하기 위해 사용할 수 있는 추상화(예: 함수, 프로시저, 모듈, 클래스, 메서드)를 제공함으로써 수행됩..
Interceptor 설정 인터셉터(Interceptor)란 컨트롤러에 들어오는 요청 HttpRequest와 컨트롤러가 응답하는 HttpResponse를 가로채는 역할을 합니다. 인터셉터는 관리자만 접근할 수 있는 관리자 페이지에 접근하기 전에 관리자 인증(권한)을 하는 용도로 활용될 수 있으며, 로그인이 필요한 페이지로 리다이렉트 보내야 하는 경우, 클라이언트 요청에 대한 공통적인 로깅, 공통적으로 처리해야 할 내용을 처리할 수도 있습니다. 인터셉터는 Servlet의 앞, 뒤에서 HttpRequest, HttpResponse을 가로채는 Filter와 그 역할은 유사하지만, Filter와 Interceptor는 서로 다른 것입니다. Filter와 Interceptor의 차이 : 호출 시점 : Filter..
Log4j Log4j는 자바 기반 로깅 유틸리티입니다. 아파치 소프트웨어 재단의 프로젝트 아파치 로깅 서비스(Apache Logging Services)의 일부이며, Log4j는 여러 자바 로깅 프레임워크들 가운데 하나입니다. 최종 사용자가 제품의 문제나 정보를 식별하기 위해, 그리고 소프트웨어 개발자가 프로그램을 개발하는 도중에 디버깅 등을 위해 타임스탬프 등 정해진 양식에 맞추어 화면상이나 파일로 로그를 남길 목적으로 사용됩니다. 그 뒤로 Log4j의 뒤를 잇는 유틸리티를 제공할 목적으로 SLF4J와 로그 백(Logback) 프로젝트를 시작했습니다. (기본적으로 Spring boot에는 로그 백(Logback)이 적용되어 있으므로 로그 백(Logback)을 제외하고 log4j를 적용할 예정입니다.) ..