MySQL 서버 버전을 업그레이드 하는 버전은 아래 두 가지 방법이 있다.들어가기 앞서 메이저 버전 업그레이드는 소수점 첫째자리가 변하는 경우 예를 들어 5.5 -> 5.7로 바뀌는 경우를 말하며 마이너 버전 업그레이드는 소수점 둘째자리 이하의 숫자가 바뀌는 경우를 말
들어가기 자바 이전 버전에서는 Date 클래스와 Calender 클래스를 제공했으나 둘 다 직관적이지 않으며 달에 시작이 0부터인 점, 가변객체라는 등 불편한 점이 많았다. 따라서 자바 8에서는 Joda-Time이라는 서드파티 라이브러리를 인용해서 java.time
쿼리에 대한 도메인 특화 언어로 Java 진영에서 데이터 엑세스 할 때 사용할 수 있는 프레임워크이다.QueryDSL을 사용하면 다음과 같은 장점을 누릴 수 있다.IDE에서 코드 완성을 지원한다.문법적으로 잘못된 쿼리를 허용하지 않는다.도메인에 유형 및 속성을 안전하게
queyrDsl은 스프링 버전에 따라 설정이 약간 다르다. 해당 방법은 스프링 3.x.x 버전 이상 설정 방법이다. 방법은 아래와 같이 build.gradle 파일에 추가적으로 설정해주면 된다.
CORS는 교차도메인 호출의 엄격한 제약조건을 완화하도록 도와주는 기능이다.기본적으로 하나의 브라우저(클라이언트)에서 최초 접근 도메인과 다른 도메인의 엔드포인트를 호출 시에 이에 대한 동작을 거부한다.이러할 때 CORS를 이용하여 동작하도록 설정할 수 있다.CORS는
스프링 시큐리티의 필터는 HttpFilter를 사용한다.HttpFilter는 아래와 같은 구조를 가지며 doFilter() 메서드를 재정의해 논리를 구현 해야한다.해당 메서드에 논리를 구현하고 마지막으로 FilterChanin 객체의 doFilter(request, r
인증 요청 이벤트를 나타내며 애플리케이션에 접근을 요청한 엔티티의 세부 정보를 담는다. 이 인터페이스는 Principal 인터페이스를 확장한다. Principal은 자바 시큐리티에 인터페이스로 이를 확장하여 다른 애플리케이션과 호환성을 고려했다.인증 이벤트 도중 또는
해당 인터페이스는 스프링 시큐리티에서 사용자 암호를 검증하는 방법을 구현한다. 아래와 같은 구성을 가진다.NoOpPasswordEncoder암호를 인코딩하지 않고 일반 텍스트로 유지 실제로 암호하지 않기 때문에 서비스에서 사용은 절대 금지!StandardPassword
위의 그림을 보면 아래와 같은 흐름으로 시큐리티가 구성된다.인증 필터는 인증 요청을 인증 관리자에 위임하고 응답을 바탕으로 보안 컨텍스트를 구성한다.인증 관리자는 인증 공급자를 이용해 인증을 처리한다.인증 공급자는 인증 논리를 구현한다.인증 공급자는 사용자 관리 책임을
스프링 시큐리티는 인증과 접근 제어를 위해 세부적인 맞춤 구성이 가능한 프레임워크이며 스프링 애플리케이션에 보안을 적용하는 과정을 크게 간소화하는 프레임워크이다.스프링 시큐리티의 간단한 특징은 아래와 같다.1\. 스프링 방식(어노테이션, 빈)으로 애플리케이션에 보안을
데이터 또는 프로그램을 격리시키는 기능을 제공하는 소프트웨어이다.위의 설명의 덧붙이자면 기존 서버에서는 여러가지 프로그램(DB, 애플리케이션)과 같은 프로그램들이 동시에 분리되지 않은 공간에서 돌아간다.하지만 도커는 각 프로그램별로 영역을 나누어 해당 공간에서 실행하는
코틀린에서 제네릭은 기본적으로 자바와 동작이 비슷하다. 제네릭은 타입 소거를 사용해 구현된다. 이 말은 실행 시점에 타입 인자 정보가 들어있지 않다는 뜻이다. 아래 코드를 보면서 타입 소거를 알아보자test() 메서드는 Int 타입의 리스트를 받았기에 당연히 as? S
고차함수는 다른 함수를 인자로 받거나 함수를 반환하는 함수를 말한다.선언하는 방법은 아래와 같다sum1의 타입을 보면 (Int, Int) -> Int 로 Int 타입인자 2개를 받고 Int를 반환한다는 뜻으로 해석 할 수 있다.이러한 반환타입은 코틀린 컴파일러가 타입
코틀린 에서는 원시타입과 래퍼타입을 구분하지 않고 사용한다.그렇다고 해서 하나의 타입으로 통일된건 아니고 컴파일러가 컴파일 시점에 더 효율적인 타입으로 컴파일해서 사용한다.따라서 Int 와 같이 널이 될 수 없는 타입의 변수는 원시타입으로 사용된다.(컬렉션과 같은 제네
코틀린에서 널이 될 수 있는 타입을 명시적으로 작성한다. 이를 통해 NullPointerException으로부터 안전하게 사용할 수 있다.아래와 같은 코드를 작성하면 코틀린은 컴파일 에러를 발생한다.널 값을 허용하게 하고 싶다면 타입의 ?을 붙여주면 된다.String?
코틀린에서는 여러 컬렉션 관련 함수를 제공한다..map(), .filter()와 같은 기본적으로 제공하는 api에 대해서는 간단히 설명하면 해당 API들은 리턴 값으로 컬렉션을 즉시 생성한다. 따라서 원소에 갯수가 많을 경우 메모리를 많이 차지 할 수 있다.시퀀스를 이
코틀린에서 사용하는 람다에 대해 알아보자람다는 다른 함수에 넘길 수 있는 작은 코드 조각을 뜻한다.따라서 공통코드를 작성해놓고 다른 곳에서 공통으로 사용 가능하다.우선 코틀린에서 컬렉션에 관련 제공되는 람다가 적용된 메서드를 활용해보자아래 코드예제를 보면 Person을
영속성 컨텍스트는 애플리케이션과 데이터베이스 사이에 객체를 보관하는 가상의 DB와 같은 역할을 한다. 이러한 영속성 컨텍스트는 엔티티 매니저를 통해 접근이 가능하며 아래와 같은 장점이 있다.1차 캐시 지원맵과 같은 형식의 공간이 있는데 엔티티를 등록 조회하면 해당 맵의
SQL중심의 개발에서 객체중심의 개발을 할 수 있게 해주는 기술이다. ORM? Object-Relational Mapping으로 객체와 관계형 데이터베이스를 매핑한다는 뜻이다. EntityManagerFactory 데이터베이스를 하나만 사용하는 애플리케이션
입출력 - 2557, 1000, 2558, 10950, 10951, 10952, 10953, 11021, 11022, 11718, 11719, 11720, 11721, 2741, 2742, 2739, 1924, 8393, 10818, 2438, 2439, 2440, 2