백엔드 데브 코스 중 중요한 개념을 정리하거나 과제 개발 일지를 정리한 공간입니다.JRE: 자바 실행 환경JDK: 자바 실행과 개발을 할 수 있는 환경JVM자바 컴파일러가 변환시킨 Byte Code를 실행환경에 맞게 실행할 수 있도록 해석해주는 역할을 수행한다.가비지
백엔드 데브 코스 중 중요한 개념을 정리하거나 과제 개발 일지를 정리한 공간입니다.클래스는 객채가 공통적으로 가진 특성과 기능을 표현한 객체에 대한 설계도이다. 객체는 구현할 대상으로 모든 인스턴스를 대표하는 의미를 가진다. 인스턴스는 클래스를 바탕으로 구현된 구체적인
백엔드 데브 코스 중 중요한 개념을 정리하거나 과제 개발 일지를 정리한 공간입니다.interface를 통해 구현을 강제하여 자바의 다형성을 극대화하고 결합성을 낮춰 코드의 수정과 유지 보수성을 높일 수 있다. 추상체에 의존= 의존성 주입= 외부로부터 의존성 전달= 결합
백엔드 데브 코스 중 중요한 개념을 정리하거나 과제 개발 일지를 정리한 공간입니다. Generic 데이터 타입을 일반화하는 것을 의미하고 클래스나 메소드에서 사용할 데이터 타입을 컴파일 시에 미리 지정하는 방법이다. 컴파일 시에 미리 타입 검사를 수행하기 때문에 객체
백엔드 데브 코스 중 중요한 개념을 정리하거나 과제 개발 일지를 정리한 공간입니다.웹 서비스의 시스템 구조는 프리젠테이션 티어(Frontend), 애플리케이션 티어(Backend), 데이터티어(Backend) 구성된 3 tier 구조를 띠고 이 중 데이터티어인 DB는
Docker AWS
백엔드 데브 코스 중 중요한 개념을 정리하거나 과제 개발 일지를 정리한 공간입니다.테이블의 레코드를 필드를 기준으로 그룹핑하여 그룹별 다양한 정보를 계산하는 데 사용된다. 사용방법은 먼저 GROUP BY로 그룹핑할 필드를 결정하고 각 그룹별로 계산할 내용을 Aggreg
백엔드 데브 코스 중 중요한 개념을 정리하거나 과제 개발 일지를 정리한 공간입니다.Numeric TypeINTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT, DECIMAL, NUMERIC, FLOAT, DOUBLE, BITDate
백엔드 데브 코스 중 중요한 개념을 정리하거나 과제 개발 일지를 정리한 공간입니다.
백엔드 데브 코스 중 중요한 개념을 정리하거나 과제 개발 일지를 정리한 공간입니다.자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로 새로운 시작이라는 뜻으로 시작되어 현재는 다양한 생태계를 구축하고 있다. 스프링은 제어의 역전(Invertion of Control
백엔드 데브 코스 중 중요한 개념을 정리하거나 과제 개발 일지를 정리한 공간입니다.오브젝트가 자신이 사용할 오브젝트를 스스로 선택하지 않고 생성하지도 않고 다른 대상에게 그 제어 권한을 위임해 코드의 변경과 유지, 발전을 용이하게 하는 스프링의 주요 개발 원칙이다.Io
백엔드 데브 코스 중 중요한 개념을 정리하거나 과제 개발 일지를 정리한 공간입니다.Ioc 컨테이너를 설정하기 위한 설정파일을 설정하고 관리할 빈에 대한 생성 메소드를 구현한다.1의 설정 파일을 이용한 ApplicationContext를 생성한다.getBean 메소드를
백엔드 데브 코스 중 중요한 개념을 정리하거나 과제 개발 일지를 정리한 공간입니다. Environment ApplicationContext에서 제공하는 또 다른 중요한 기능중의 하나로 스프링 환경 설정인 Profiles, Property과 관련된 인터페이스이다. 실제
백엔드 데브 코스 중 중요한 개념을 정리하거나 과제 개발 일지를 정리한 공간입니다.시스템을 작동할 때 시스템의 작동 상태의 기록과 보존, 이용자의 습성 조사 및 시스템 동작의 분석 등을 하기 위해 로그 시스템의 사용에 관계된 일련의「사건」들을 시간의 경과에 따라 기록하
백엔드 데브 코스 중 중요한 개념을 정리하거나 과제 개발 일지를 정리한 공간입니다.Unit Testing: 프로그램의 기본 단위인 모듈이 정해진 기능을 수행하는지 테스트 하는 것을 의미한다.Integration Testing: 서로 다른 모듈의 상호작용이 잘 이루어는지
백엔드 데브 코스 중 중요한 개념을 정리하거나 과제 개발 일지를 정리한 공간입니다.자바 어플리케이션과 데이터베이스 간의 연결을 허용하는 API로 flow는 다음과 같다.DriverManager를 통해서 컨넥션 객체를 받아옵니다.Connection을 통해서 Stateme
백엔드 데브 코스 중 중요한 개념을 정리하거나 과제 개발 일지를 정리한 공간입니다.실제로 DB에 접근하는 객체로 SQL를 사용(개발자가 직접 코딩)하여 DB에 접근한 후 적절한 CRUD API를 제공한다.계층 간 데이터 교환을 위한 자바 빈즈로 DB에서 얻은 데이터를
백엔드 데브 코스 중 중요한 개념을 정리하거나 과제 개발 일지를 정리한 공간입니다.외부 환경에 의존하는 DB 관련 테스트의 경우 자동 테스트가 어렵기 때문에 내장된 데이터베이스를 사용해서 테스트를 수행할 수 있는 기능을 지원한다. MySQL 환경의 내장 데이터베이스를
백엔드 데브 코스 중 중요한 개념을 정리하거나 과제 개발 일지를 정리한 공간입니다. AoP(Aspect Orient Programming) 관점 지향 프로그래밍이라는 뜻으로 계층 내에서가 아닌 계층마다 가지고 있는 공통 관심사의 분리를 허용함으로써 모듈성을 증가시키는
백엔드 데브 코스 중 중요한 개념을 정리하거나 과제 개발 일지를 정리한 공간입니다.인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 정보 공간을 의미한다. URI로 조작 대상을 정해 HTTP을 이용해서 HTML 파일을 전송하는 방식을 말한다.HTTP는 HT
백엔드 데브 코스 중 중요한 개념을 정리하거나 과제 개발 일지를 정리한 공간입니다.HTTP 프로토콜로 들어오는 모든 요청을 톰캣과 같은 서블릿 컨테이너가 받게 되면 그 안에서 각 요청을 적절한 컨트롤러에 전달하는 역할을 하는 Front Controller로 web.xm
백엔드 데브 코스 중 중요한 개념을 정리하거나 과제 개발 일지를 정리한 공간입니다.
SPA Single Page Applicaton이라는 의미로 사용자의 인터렉션으로 인한 URL 변경 시 화면 전체의 로드 없이 화면의 일부분만 동적으로 렌더링 되는 방식으로 AJAX를 이용해서 대부분의 리소스들을 로드 시 한 번에 읽은 후 JSON과 같은 데이터만 요청해서 받아올 때 관련된 화면만 변경시키는 방식으로 동작된다. 기존의 방식의 경우 페이지의 ...
@SpringBootApplication @EnableConfigurationProperties Config 클래스에서 프로퍼티 POJO의 값을 자동으로 주입시켜주는 아노테이션으로 해당 아노테이션을 사용할 때는 @ConfiguratonProperties를 사용해서 설
데이터베이스 드라이버마다의 구현체 클래스의 인터페이스를 사용해 다양한 종류의 데이터베이스에 접근할 수 있고 JdbcTemplate api의 sql문을 수행한 결과문인 resultSet을 도메인 객체로 변환해서 사용한다.Jdbc template의 경우 쿼리의 결과로 나온
관계형 데이터베이스와 매핑되는 객체인 Entity를 관리하는 EntityManager 빈을 생성하는 팩토리 객체로 thread safe 하다.Entity의 저장, 수정, 삭제, 조회와 관련된 모든 일을 처리하는 빈으로 영속성 컨텍스트에 관리되는 엔티티의 변화를 감지하여
엔티티 내 참고하고 싶은 엔티티 객체를 필드로 선언하고 연관관계에 대한 아노테이션 표기를 통해 엔티티 간의 연관관계를 객체에서도 표현할 수 있다.두 개의 엔티티에서 한 엔티티만 다른 엔티티를 참조하는 것이 단방향 관계이고 양 쪽의 엔티티가 모두 서로 참조하는 것이 양방
사용자의 신원을 확인하는 과정이다. 사용자의 신원 확인 행위는 대표적으로 아이디 패스워드 기반의 로그인 또는 OAuth 2.0을 사용한 인증이 있다.어플리케이션은 인증 영역과 인증되지 않은 영역으로 존재하고 인증 영역의 경우 특정 사용자의 개인정보를 확인하고 수정할 수
웹요청을 가로챈 후 사용자를 인증하고 인증된 사용자가 적절한 권한을 지니고 있는지 확인하는 과정으로 인증, 인가가 이뤄진다.보안과 관련된 인증과 인가가 이뤄지는 과정이 동작하기 위해 구현된 아키텍처의 핵심 기능으로 웹요청을 수신한 서블릿 컨테이너가 해당 요청을 Dele
WAS의 경우 새로운 요청이 들어온 경우 큐에 적재되고 쓰레드 풀 내 하나의 쓰레드를 사용하여 처리하게 되는 방식으로 동작하게 된다.동일한 thread에서 실행되는 동안(하나의 요청을 처리하는 동안) 거치는 Controller, Service, Repository, 도
인증되지 않은 사용자가 로그인 정보 쿠키를 가지고 있다면 자동으로 인증처리를 해주는 기능을 담당하고 이를 통해 Authentication 인터페이스 구현체인 RememberMeAuthenticationToken를 갖게 된다.사용자의 SecurityContext를 가져오
인증과 관련된 이벤트가 발생할 때 리스너를 통해 처리하는 기능을 제공해 컴포넌트 간의 느슨한 결합을 유지하는데 도움을 주는 장점을 가지고 있다. 사용할 때는 @EventListener를 사용한 메소드에 구독을 할 이벤트 객체를 매개변수로 등록한다.응답 헤더에 대한 보안
UsernamePasswordAuthenticationFilter에서 인증 처리를 담당한다. AuthenticationManager의 구현체인 ProviderManager는 사용자가 요청한 인증을 처리할 수 있는 Provider로 인증처리를 넘긴다.(UsernamePa
Session Spring Session
JWT (Json Web Token) Session을 사용하는 방식의 경우 Stateful한 상태이기 때문에 수평확장에 어려움이 가지고 있어 이를 대신하여 Rest API에서 Stateless 상태를 유지하고 서버에서 사용자를 인증할 수 있는 JSON 포맷을 사용한 인증수단이다. JWT는 Header, Payload, Signature 세 부분으로 구성되어...
JWTAuthenticationFilter 구현 과정 HTTP 요청 헤더에서 JWT 토큰이 있는지 확인한다. JWT이 유효힌 경우 loginId, roles을 추출하여 UsernamePasswordToken을 생성한다. SecurityContext에 UsernameP