JAVA 52

Spring 컨테이너

Spring 컨테이너란? 주입을 이용하여 객체를 관리하는 컨테이너이다. 컨테이너의 사전적 의미는 무언가를 담는 용기, 즉 그릇을 의미한다. 이를 통해 접급하자면 컨테이너는 객체관리를 주로 수행하는 그릇정도로 이해할 수 있다. 빈의 생성과 관계, 사용, 생명 주기등을 관장한다. 컨테이너를 통해 시스템 전반에서 언제는 사용가능하다. 주요용어 POJO 어플리케이션의 핵심 코드를 담고 있는 클래스 Plain Old Java Object, 직역하면 오래된 방식의 자바 객체라는 뜻으로 특정 환경에 종속없는 단순 클래스이다. 종속되지 않는 다는 것은 코드를 간결히 할 수 있고, 객체지향 설계를 충실히 이행하고 있음을 보여준다. Bean 스프링 컨테이너가 생성하고 관리하는 어플리케이션 객체

JAVA 2021.01.14

Mybatis

MyBatis란? 객체 지향 언어인 자바의 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 할 수 있게 도와 주는 개발 프레임 워크로서 JDBC를 통해 데이터베이스에 엑세스하는 작업을 캡슐화하고 일반 SQL 쿼리, 저장 프로 시저 및 고급 매핑을 지원하며 모든 JDBC 코드 및 매개 변수의 중복작업을 제거 합니다. Mybatis에서는 프로그램에 있는 SQL쿼리들을 한 구성파일에 구성하여 프로그램 코드와 SQL을 분리할 수 있는 장점을 가지고 있습니다. MyBatis 특징 복잡한 쿼리나 다이나믹한 쿼리에 강하다 - 반대로 비슷한 쿼리는 남발하게 되는 단점이 있다. 프로그램 코드와 SQL 쿼리의 분리로 코드의 간결성 및 유지보수성 향상 resultType, resultClass등 Vo를 사용하지 않고 조회결과를..

JAVA 2021.01.13

Security

Security란? 허가된 사용자만이 특정 웹페이지에 접근할 수 있도록 제한하는 보안 기능 - 인증(Authentication) : 사용자가 웹 페이지에 접근할 때, JSP 컨테이너는 요청된 페이지에 보안 제약 사항이 있는지 확인하고, 사용자의 이름과 암호를 확인한다. - 권한 부여(Authorization) : 특정 사용자가 해당 페이지에 접근할 수 있는지 확인한다. (= 허가) 처리 방법 1) 선언적 시큐리티 : 코드 작성 없이 web.xml 파일에 보안 구성을 작성하여 사용자 인증을 수행한다. 2) 프로그래밍적 시큐리티 : request 내장 객체의 메소드를 통해 사용자의 권한을 부여한다. ① 선언적 시큐리티 - web.xml 파일은 보안 역할, 보안 제약 사항, 인증 처리 등을 설정하여 보안을 구..

JAVA 2021.01.12

JAVA 스터디 : JDBC 간단 설명

# DataSource 란? DataSource는 JDBC 명세의 일부분이면서 일반화된 연결 팩토리이다. 즉 DB와 관계된 connection 정보를 담고 있으며, bean으로 등록하여 인자로 넘겨준다. 이 과정을 통해 Spring은 DataSource로 DB와의 연결을 획득한다. DataSource는 JDBC Driver vendor(Mysql, Oracle 등) 별로 여러가지가 존재한다. DataSource가 하는 일 DB Server와의 기본적인 연결 DB Connection Pooling 기능 트랜젝션 처리 출처: gmlwjd9405.github.io/2018/05/15/setting-for-db-programming.html

JAVA 2021.01.08

JAVA 스터디 : form 데이터 주고 받기

데이터 전송 웹서비스는 클라이언트와 서버로 구성되어있고, 이들은 요청과 응답이라는 방식으로 통신함 form 태그의 이해 form 태그는 클라이언트에서 서버로 데이터 전송을 위해 사용한다. 폼 태그의 대표적인 사용 예로 로그인을 들 수 있다. 로그인을 위해 사용자는 아이디와 패스워드 서버로 전송해야 하는데 이때 폼 데이터를 이용한다. form 태그는 여러 속성을 가지고 있으나 이중 중요한 것은 아래의 두 속성이다. action: 수신 대상 method: 전송 방식 form의 수신대상은 result.jsp이고, 전송방식은 post방식이다. form에서의 전송방식은 두가지(GET / POST)가 존재한다. 데이터를 쪽지에 적어서 보내는 것을 GET 이라고 한다면, POST는 보안가방 안에 데이터 쪽지를 담아서..

JAVA 2021.01.04

JAVA 스터디 : Request Mapping

@RequestMapping은 DefaultAnnotationHandlerMapping에서 컨트롤러를 선택할 때 대표적으로 사용하는 애노테이션이다. url당 하나의 컨트롤러에 매핑되던 다른 핸들러 매핑과 달리 메서드 단위까지 세분화하여 적용할 수 있으며, url 뿐 아니라 파라미터, 헤더 등 더욱 넓은 범위를 적용할 수 있다. 속성 DefaultAnnotationHandlerMapping은 클래스와 메서드에 붙은 @RequestMapping 애노테이션 정보를 결합해 최종 매핑정보를 생성한다. 기본적인 결합 방법은 클래스 레벨의 @RequestMapping을 기준으로 삼고, 메서드 레벨의 @RequestMapping으로 세분화하는 방식으로 사용된다. @RequestMapping에 사용할 수 있는 속성들은 ..

JAVA 2021.01.01

JAVA 스터디 : Lombok annotation

▶ Lombok 이란? 롬복(Lombok)은 자바에서 Model(DTO, VO, Domain) Object 를 만들때, 멤버필드(프로퍼티)에 대한 Getter/Setter, ToString과 멤버필드에 주입하는 생성자를 만드는 코드 등 불필요하게 반복적으로 만드는 코드를 어노테이션을 통해 줄여 주는 라이브러리, 프로젝트 입니다. 사실 반복되는 Getter, Setter, toString 등을 자동으로 해주는 것만으로도 고마운 것 같다. ▶ License : MIT License MIT 라이선스(MIT LICENSE)는 미국 매사추세츠 공과대학교(MIT)에서 해당 대학의 소프트웨어 공학도들을 돕기 위해 개발한 라이선스다. MIT 라이선스를 따르는 소프트웨어를 개조한 제품을 반드시 오픈 소스로 배포해야 한다..

JAVA 2020.12.31

JAVA 스터디 : Spring AOP

AOP란? Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 관점 지향은 쉽게 말해 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것이다. 여기서 모듈화란 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것을 말한다. 예를들어 핵심적인 관점은 결국 우리가 적용하고자 하는 핵심 비즈니스 로직이 된다. 또한 부가적인 관점은 핵심 로직을 실행하기 위해서 행해지는 데이터베이스 연결, 로깅, 파일 입출력 등을 예로 들 수 있다. AOP에서 각 관점을 기준으로 로직을 모듈화한다는 것은 코드들을 부분적으로 나누어서 모듈화하겠다는 의미다. 이때, 소스 코드상에서 다른 부분에 계속 반복해서 쓰는 코드들을 발견할 수..

JAVA 2020.12.30

JAVA 스터디 : Properties

JAVA 웹 프로젝트에서 Properties 파일 활용하기 웹 어플리케이션이 시작하자마자 가져와야하는 정보와 같은 것들을 프로퍼티 파일에 작성해서 관리할 수 있다. 프로퍼티 파일 작성하기 프로퍼티 파일은 한 라인에 key=value 형식으로 작성하고 .properties 확장자를 붙여 저장한다. 프로퍼티 파일 로딩 및 내용 가져오기(읽기) java.util.Properties 클래스를 사용해서 프로퍼티 파일을 다룰 수 있다. Properties는 key=value 형식의 텍스트 파일을 다룰 때 사용하는 클래스이다. 출처:atoz-develop.tistory.com/entry/%EC%9B%B9-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EC%97%90%EC%84%9C-Properti..

JAVA 2020.12.29

JAVA 스터디 : DI

Dependency Injection (의존성 주입) 객체 자체가 아니라 Framework에 의해 객체의 의존성이 주입되는 설꼐 패턴 Framework에 의해 동적으로 주입되므로 여러 객체간의 결합이 줄어든다. Dependency Injection은 Spring Framework 에서 지원하는 IoC의 형태 설정에 명시된대로 Container가 bean 객체를 생성하고 종속성 주입을 수행한다. Dependency Injection(의존성 주입)과 Inversion Of Control(제어의 역전)은 같은 의미로 사용된다. IoC는 DI를 통해 달성된다. IoC(제어의 역전): 프로그램 제어권을 framework가 가져가는 것 개발자가 모든 제어의 중심이지만 코드 전체에 대한 제어는 framework가 한..

JAVA 2020.12.28