분류 전체보기 243

[Java] 람다식과 함수형 인터페이스(1)

람다식(Lambda Experssion)이란? 람다(Lambda)는 JDK 1.8부터 추가된 것으로, 람다의 도입으로 인해 자바는 객체지향언어이지만 함수형언어의 특징까지 가지게 되었다. 즉, 함수형 프로그래밍으로써 람다식은 메소드를 간략하면서도 명확한 하나의 식으로써 표현한 것이다. 메소드를 람다식으로 표현하면 메소드의 이름과 반환값이 없어지게되므로 람다식을 익명함수(anonymous function)라고도 한다. 람다식의 작성법 람다식은 익명함수답게 메소드에서 이름과 반환타입을 제거하고 매개변수 선언부와 몸통{ } 사이에 -> 를 추가하여 작성한다. 또한, 람다식에서 매개변수의 타입, 매겨변수의 괄호, 몸통 괄호, return, 세미클론을 경우에 따라 생략을 할 수 도 있다. 기본식 반환타입 메소드이름..

Java&Web 2021.02.27

[Java] JAR, WAR 그리고 EAR

J2EE(Java 2 Enterprise Edition, Java 기술로 기업환경의 어플리케이션을 만드는데 필요한 스펙들을 모아둔 스펙 집합) 애플리케이션에서 모듈은 기능에 따라 JAR, WAR 그리고 EAR로 패키징이 될 수 있다. JAR, WAR, EAR에 대해 알아 보았다. JAR란? JAR란 Java Archive의 줄임말로써 .jar 확장자를 가지는 파일이다. Java 애플리케이션이 동작할 수 있도록 Java 프로젝트를 압축한 파일로써, 내부에는 Class와 같은 Java 리소스와 속성파일 그리고 라이브러리등이 포함되어있다. JAR 파일은 JRE만으로도 실행이 가능하며, Java 플랫폼에 귀속된다는 것을 제외하면 zip 파일과 같은 구조이다. 또한, JAR는 원하는 구조로 구성을 할 수 있는 것..

Java&Web 2021.02.09

[JUnit] Mockito를 이용한 단위 테스트

Mockito란? Mockito란 단위 테스트를 위한 Java Mocking Framework이다. JUnit에서 가짜 객체인 Mock을 생성해주고 관리하고 검증할 수 있도록 지원해주는 Framework이다. 구현체가 아직 없는 경우나 구현체가 있더라도 특정 단위만 테스트하고 싶을 경우 사용할 수 있도록 적절한 환경을 제공해준다. Mock 객체란? Mockito에서 Mock 객체를 제공해준다고 위에서 언급이 되었는데, Mock 객체란 다음과 같다. Mock 객체란 개발한 프로그램을 테스트할 때 테스트를 수행할 모듈과 연결되는 외부의 다른 모듈을 흉내 내는 가짜 모듈을 생성하여 테스트의 효율성을 높이는 데 사용하는 객체이다. 다음과 같은 예가 있다고 가정해보자. 위와 같은 클래스들이 있는 상황에서 Comm..

Java&Web 2021.02.02

[WEB] RestTemplate을 이용하여 API 호출하기

RestTemplate이란? RestTemplate은 Spring 3.0 부터 지원하는 템플릿으로 Spring에서 HTTP 통신을 RESTful 형식에 맞게 손쉬운 사용을 제공해주는 템플릿이다. Rest API 서비스를 요청후 응답 받을 수 있도록 설계되었으며 HTTP 프로토콜의 메소드(ex. GET, POST, DELETE, PUT)들에 적합한 여러 메소드들을 제공한다. Java에서 사용되는 다른 템플릿(ex. JdbcTemplate)들 처럼 단순 메소드 호출 만으로 복잡한 작업을 쉽게 처리할 수 있는 것이 특징이다. RestTemplate의 특징 Spring 3.0 부터 지원하는 Spring의 HTTP 통신 템플릿 HTTP 요청 후 JSON, XML, String 과 같은 응답을 받을 수 있는 템플릿..

Java&Web 2021.01.23

[WEB] Spring의 웹 계층과 트랜잭션 스크립트, 도메인 모델

Spring의 웹 계층 Web Layer 흔히 사용하는 Controller와 JSP 등의 뷰 템플릿 영역이다. 이외에도 filter, interceptor, ControllerAdvice 등 외부 요청과 응답에 대한 전반적인 영역이다. Service Layer @Service에 사용되는 서비스 영역이다. 일반적으로 Controller와 DAO의 중간 영역으로 사용된다. @Transcational이 사용되어야 하는 영역이다. Repository Layer DB와 같이 데이터 저장소에 접근하는 영역이다. DAO(Data Access Object)영역이다. DTOs DTO(Data Transfer Object)는 계층 간에 데이터 교환을 위한 객체를 DTOs는 그 영역이다. Web Layer에서 사용될 객체나..

Java&Web 2021.01.17

[Enum] Enum을 Binding해주는 Custom Converter

1 2 3 4 5 6 7 8 9 10 11 12 public enum Status { UNCHECKED(1), APPROVED(2), BLOCKED(3); @Getter private final int statusCode; Status(int statusCode) { this.statusCode = statusCode; } } Colored by Color Scripter 위와 같은 Enum 클래스를 사용한다고 가정하자. 클라이언트쪽에서 서버쪽으로 요청을 보낼때 인자값으로 위의 Enum에 등록된 값을 하나 사용할려고 한다. 이때, 클라이언트쪽에서 요청을 보낼때 Enum에 등록된 UNCHECKED, APPROVED, BLOCKED로 서버에 보낸다면 인자값을 받음에 있어 문제가 없을 것이다. 하지만 만약 u..

Java&Web 2021.01.13

[MyBatis] Enum을 MyBatis 환경에서 사용하기

Java 서버단에서 상수를 처리함에 있어서 여러방법이 있다. 보통 final을 붙여서 상수를 선언하여 처리하는 것이 일반적이지만 성질이 비슷한 상수가 다수가 존재한다면 Enum 클래스를 이용하여 처리할 수 있다. Enum 클래스에 대한 자세한 내용은 다른 포스팅에서 다룰 예정이고, 이번 포스팅에선 이러한 Enum 클래스를 MyBatis 환경에서 적용시키는 실습을 해보았다. 다음과 같은 과정을 거쳐 Springboot에서 Enum 클래스를 MyBatis에 적용시켜 보았다. Enum 클래스 생성 1 2 3 4 5 6 7 8 9 10 11 12 public enum Status { UNCHECKED(1), APPROVED(2), BLOCKED(3); @Getter private final int statusC..

Java&Web 2021.01.12

[DB] Database Connection Pool이란

DB Connection Pool에 대해 알아보기 전에 우선 JDBC에 대해 알아보았다. 기본적으로 JDBC는 다음과 같은 과정을 거친다. DB벤더에 맞는 드라이버 로드 DB서버의 IP, ID, PW등을 DriverManager 클래스의 getConnection 메소드를 사용하여 Connection 객체 생성 Connection으로 부터 PreparedStatement 객체를 받음 executeQurey를 수행하고 ResultSet객체를 받아 데이터를 처리 사용했던 ResultSet, PreparedStatement, Connection을 close 이러한 일련의 과정을 거쳐 Java 애플리케이션과 Database가 연동이 되어 원하는 데이터를 처리할 수 있다. 이 과정중에서 가장 오래 걸리는 부분을 예..

Database 2021.01.04

[MyBatis] Springboot에 MyBatis-Spring 설정하기(2)

[MyBatis] Springboot에 MyBatis-Spring 설정하기(1) [MyBatis] Springboot에 MyBatis-Spring 설정하기(1) [MyBatis] MyBatis [MyBatis] MyBatis MyBatis란? MyBatis는 객체 지향 언어인 Java의 관계형 데이터베이스 프로그래밍을 좀더 쉽게 도와주는 퍼시스턴스 프레임워크(Persistence Framework, 데이터를 다루는 클래.. minkwon4.tistory.com 지난 포스팅에서 MyBatis-Spring에 대해 알아보고, application.properties만을 이용하여 Springboot환경에 MyBatis-Spring을 적용하는 실습을 해보았다. 이번 포스팅에서는 application.propert..

Java&Web 2021.01.04

[MyBatis] Springboot에 MyBatis-Spring 설정하기(1)

[MyBatis] MyBatis란 [MyBatis] MyBatis란 MyBatis란? MyBatis는 객체 지향 언어인 Java의 관계형 데이터베이스 프로그래밍을 좀더 쉽게 도와주는 퍼시스턴스 프레임워크(Persistence Framework, 데이터를 다루는 클래스 및 설정파일 집합)이다. MyBati minkwon4.tistory.com 지난번 포스팅때 MyBatis에 대해 조사하였는데, 조사하다가 Spring 환경에서 사용하기 적합하게 나온 Mybatis-Spring에 대해 알게 되어 조사해보았다. MyBatis-Spring의 주요 컴포넌트 이름 설명 SqlSessionFactoryBean SqlSessionFactory를 작성하고 Spring DI 컨테이너에 저장하는 구성요소 기본적으로 MyBat..

Java&Web 2020.12.31