Java&Web 30

[Logging] Springboot에 Log4j2 설정하기

[Logging] slf4j, log4j, logback, log4j2 [Logging] slf4j, log4j, logback, log4j2 로그(log)는 소프트웨어의 이벤트를 기록하는 것으로써, 소프트웨어의 동작상태를 파악하고 문제가 발생했을 때 이 동작 파악을 통해서 소프트웨어의 문제를 찾아내고 해결하기 위해 디자인 되 minkwon4.tistory.com Springboot는 기본 Java 로깅 프레임워크로 spring-boot-starter-web안에 spring-boot-starter-loggig의 logback이 포함되어 있지만 가장 최신에 나오고 성능이 좋은 log4j2를 Springboot 프로젝트에 설정을 해보았다. 다음과 같은 과정을 거쳐 설정을 진행했다. log4j2 Depende..

Java&Web 2020.12.29

[Logging] slf4j, log4j, logback, log4j2

로그(log)는 소프트웨어의 이벤트를 기록하는 것으로써, 소프트웨어의 동작상태를 파악하고 문제가 발생했을 때 이 동작 파악을 통해서 소프트웨어의 문제를 찾아내고 해결하기 위해 디자인 되었다. 즉, 소프트웨어의 디버깅이나 모니터링을 위하여 정보를 기록하는 곳에 사용되는데 기존의 Debugger나 println에 비해 로그는 다음과 같은 장점이 있다 상활별 Level을 지정하여 Level별 메세지를 선택가능 응용 프로그램의 실행에 대한 흐름과 에러 확인 가능 프레임워크를 이용하여 간단하고 쉬운 사용환경 조성 가능 모듈 별로 유연하게 메세지 출력 가능 자유로운 출력 위치 및 다양한 출력 형식 지원 Java에서는 이러한 로그에 대해 여러 프레임워크가 존재한다. 로깅 프레임워크에는 slf4j, log4j,l lo..

Java&Web 2020.12.29

[Apache] Apache와 Springboot 연동하기(mod_jk)

[WEB] Apache와 Tomcat 연동하기 [WEB] Apache와 Tomcat 연동하기 [Network] Web Server와 WAS [Network] Web Server와 WAS Web Server란? 개념 하드웨어적 의미로는 Web Server가 설치되어 있는 컴퓨터 소프트웨어적 의미로는 클라이언트의 요청을 받아 정적 컨텐츠(image, html,.. minkwon4.tistory.com Apache와 Springboot 연동(mod_jk) Web Server로써 Apache를 Springboot의 내장 Tomcat과 연동하는 작업을 앞서 정리한 글의 mod_jk 방식을 사용하여 다음과 같은 과정을 거쳐 진행해 보았다. 일단 Springboot에서 다음과 같은 설정 파일들을 작성해주었다. app..

Java&Web 2020.12.24

[JUnit] JUnit이란

단위 테스트란? 단위 테스트(Unit Test)는 프로그램의 기본 단위인 모듈(Module)을 테스트하는 것이다. 구현 단계에서 각 모듈의 개발을 완료한 후 명세서의 내용대로 정확히 구현되었는지를 테스트하는 것이다. 테스트가 가능한 최소 단위로 나눠서 테스트를 수행하며 개발 수명주기(Development LifeCycle)의 정황과 시스템에 의존적이면서도 시스템의 다른 부분에서 격리하여 독립적으로 수행해야 하는 테스트이다. 단위테스트를 하기 위해서는 가짜 프로그램, 객체(Mock Object)를 만들어서 활용할 수 있으며, 정교하게 테스트 하기 위해서는 테스트 케이스(Test Case) 작성은 필수라 할 수 있다. 종류 : JUnit(Java), DBUnit(DB), CppUnit(C++), NUnit(..

Java&Web 2020.12.18

[Apache] Apache와 Tomcat 연동하기

[Network] Web Server와 WAS [Network] Web Server와 WAS Web Server란? 개념 하드웨어적 의미로는 Web Server가 설치되어 있는 컴퓨터 소프트웨어적 의미로는 클라이언트의 요청을 받아 정적 컨텐츠(image, html, css, javascript 등)를 제공하는 서버 기능 HTTP 프로 minkwon4.tistory.com Apache와 Tomcat의 연동 Web Server인 Apache와 WAS인 Tomcat의 연동에는 다음과 같은 3가지 방식이 있다. 연결 방식 장점 단점 mod_jk - Tomcat Connector를 사용하는 방식 - 가장 많이 사용해온 방식 - mod_jk 관련 자료가 많음 - JKMount 옵션을 이용하면 URL이나 컨텐츠 별로..

Java&Web 2020.12.17

[WEB] Web Server와 WAS

Web Server란? 개념 하드웨어적 의미로는 Web Server가 설치되어 있는 컴퓨터 소프트웨어적 의미로는 클라이언트의 요청을 받아 정적 컨텐츠(image, html, css, javascript 등)를 제공하는 서버 기능 HTTP 프로토콜을 기반으로 하여 클라이언트 요청에 따라 서비스를 담당 클라이언트의 요청이 정적 컨텐츠라면 그에 맞는 정적 컨텐츠를 클라이언트에게 응답 클라이언트의 요청이 정적 컨텐츠가 아니라면 WAS에게 요청을 전달 및 WAS의 응답을 클라이언트에게 전달 컨텐츠 압축 HTTPS 지원 Web Server 메모리 캐시 종류 : Apache Web Server, Nginx, IIS(Microsoft), Google Web Server WAS란? 개념 Web Appliaciton Se..

Java&Web 2020.12.17

[JPA] Spring Data JPA (4) - 사용자 정의 Repository

Spring Data JPA는 다양한 프레임워크와 연동기능을 제공한다. JPA만으로 해결할 수 없는 동적쿼리등을 지원하기 위함이다. 대표적으로 QueryDSL 등을 사용하고, JDBC Template, Mybatis 등도 사용할 수 있다. 가장 많이 사용해본 Mybatis와의 연동을 실습해보았다. 사용자 정의 Repository - MyBatis MemberRepositroy에 기존 Spring Data JPA가 제공하는 메소드 말고, 다른 프레임워크(Mybatis)를 이용한 메소드를 추가하기 위해 다음과 같은 사용자 정의 Repository와 구현체 class를 만들어보았다. 1 2 3 public interface MemberRepositoryMybatis { List findDynamic(Membe..

Java&Web 2020.08.28

[JPA] Spring Data JPA (3) - 페이징과 정렬

페이징과 정렬 Spirng Data JPA는 아주 간편한 페이징과 정렬기능을 제공해준다. 메소드의 리턴 타입으로 Page를 사용해주고, pageable이란 파라미터에 시작페이지, 갯수, 정렬조건, 그리고 메소드이름으로 검색조건을 적절히 사용해준다면 count쿼리까지 자동으로 조회해주는 쉬운 페이징을 할 수 있다. 다음과 같은 예시가 있다. 1 2 3 4 5 public interface MemberRepository extends JpaRepository{ //페이징 Page findByAge(int age, Pageable pageable); } Colored by Color Scripter 위 처럼 Page를 리턴타입으로 받아주고, Pageable 변수를 파라미터로 가지는 메소드 네이밍 쿼리를 작성하..

Java&Web 2020.08.28

[JPA] Spring Data JPA (2) - 메소드 네임 쿼리, @Query

메소드 네임 쿼리 JPA는 기본적으로 JpaRepository을 상속 받음으로써 기본적인 CRUD를 할 수 있는 쿼리를 제공한다. 또한 이것과 별게로 추가적으로 규칙에 의한 메소드 네임만으로 다양한 쿼리문을 실행시킬 수 있는 기능도 제공해준다. 즉, JPA는 메소드의 이름을 분석하여 JPQL을 생성하고 실행한다. 예를 들면 다음과 같다. 1 2 3 public interface MemberRepository extends JpaRepository { List findByEmailAndName(String email,String name); } Colored by Color Scripter MemberRepository에 findByEmailAndName이란 메소드를 만들어주었고, 이것을 JPA는 내부적으..

Java&Web 2020.08.28

[JPA] Spring Data JPA (1) - 소개, 기본

JPA란? Java Persistence API로써 자바진영의 ORM 기술 표준 ※ ORM : Object-Relational Mapping, 객체와 관계형 데이터베이스의 매핑 기존에 존재했던 패러다임 불일치 문제를 해결 기존 JDBC와는 다르게 객체는 객체대로 설계, RDBMS는 RDBMS대로 설계 후 맵핑하는 방식 ※ 객체와 RDBMS의 차이 : 상속, 연관관계, 데이터 타입, 데이터 식별 방법 애플리케이션을 SQL이 아닌 객체중심으로 개발하여 생산성과 유지보수를 높임 JPA는 인터페이스, 구현체로써 Hibernate, EclipseLink, DataNucleus등을 사용, 대표적으로 Hibernate를 사용 Spring Data JPA란? Spring Data JPA는 Spring Data 프로젝트..

Java&Web 2020.08.28