본문 바로가기

SpringFramework

(36)
Spring - Mybatis FrameWork 개념 및 설정 MyBatis란? : 자바 오브젝트와 SQL사이의 자동 매핑 기능을 지원하는 ORM 프레임워크이다. Hibernate나 JPA처럼 새로운 DB프로그래밍 패러다임을 익혀야하는 부담 없이 SQL 쿼리를 그대로 사용한다. 따라서, 복잡한 쿼리에도 대응이 가능하다. 도메인 객체나 VO객체를 중심으로 개발이 가능하다. (개발자가 정의하는 DTO, VO 등의 클래스 매핑이 가능) SQL을 별도의 파일(.xml)로 분리해서 관리하게 해준다. 또한, JDBC코드 작성의 불편함도 해소된다. JDBC는 DB연동에 필수적으로 사용하는 것인데, JDBC만 사용하여 쿼리문을 작성하면, java코드와 쿼리코드가 겹치면서 관리가 어렵게 되는데, Mybatis는 이 둘을 분리시켜서 저장관리 할 수 있게 해주며, 내부적으로 JDBC와..
Spring Package 구조와 역할 스프링에서 사용하는 패키지(package)단위의 구분. 패키지 구조 설계는 프로젝트마다 그리고 개발자마다 다를 것이며, 사용되는 프레임워크나 서비스에 맞게 설계되는 것이 일반적이다. 정해진 답은 없다. = controller 클라이언트의 요청이 진입하는 포인트. 요청에 따라 어떤 처리(수행할 비즈니스로직)를 할지 결정해주며 처리된 로직 및 데이터를 View 혹은 정의내린 포맷에 맞게 응답을 보내주는 중간 제어자이다. 우리가 흔히 알고있는 MVC패턴의 그 Controller가 맞다. 스프링에서는 @Controller 어노테이션을 선언하여 스프링 Bean에 등록한다. = service 비즈니스 로직을 처리한다. controller에서 받은 요청을 처리할 때, 필요한 데이터를 dao객체(mapper, repo..
Jenkins를 이용한 서버 Spring Boot 배포 - pipeline ubuntu서버 1대에 Spring Boot 프로젝트 구동 배포 pipeline 구축에 대해서 소개한다. [참고사항] - 개발환경으로는 사용이 가능할 수 있으나, 실제 운영환경에서는 적합하지 않습니다. - Load Balencer가 적용되지 않으며, 접근할 수 있는 DNS 및 공인 IP가 등록되어있어야 합니다. - Blue/Green (무중단)배포가 아닌, 배포진행중에는, 프로젝트가 중단되어버리는 방법입니다. 1] General 2] 소스 코드 관리 3] Build (!) 정렬 순서에 맞게 동작하므로, 순서에 유의할 것. - Execute shell : 기존에 떠있는 java springboot 프로젝트를 제거 $ kill -9 $(ps -ef | grep 'ep-java-gradle-exam' | gr..
Spring - 자주사용하는 Annotation 정리 @Autowired : 의존성을 주입하여 자동을 객체를 생성해주며 메소드 위에 사용할 경우 기본생성자를 만들어준다. @Autowired 는 타입에 따라 매핑되기 때문에 동일 인터페이스를 상속받을 경우 구분의 모호함이 발생할 수 있음. @Configuration : 스프링 설정 클래스 선언 @Bean : 스프링 빈으로 선언. (스프링 컨테이너에서 관리하는 하나의 객체) (!) Bean은 싱글톤 객체이므로, 몇번을 호출하더라도, 한 개의 객체만을 생성하는 특징을 지닌다. @Scope : 스프링에서 Bean으로 지정된 객체는 기본적으로 싱글톤 객체로 관리되지만, 상황에따라서 다르게 부여할 수 있다. default는 singleton. ex) @Scope("prototype") - singleton : 기본 싱..
Spring - 스프링 프레임워크 기본개념 정리 1] 개요 Spring FrameWork는 EJB(Enterprise Java Bean)를 주 프레임워크로 사용할 때 불편했던 부분을 해소 (EJB가 너무 스펙이 좋지않아서..) 2003년 6월 Apache 2.0 License로 공개가 되었다 = 장점 1] 생산성 => 스프링은 개발자가 이론적으로는 알아야 하는 부분이 많지만, 결과적으로 작성하는 코드의 양은 줄어든다. 2] 품질보증 => 프레임워크는 개발에 필요한 구조가 절반정도는 만들어져 있기 때문에, 필요한 부분만 조립하는 형태로 개발이 가능하다. 프레임워크를 사용하면 회사 입장에서는 일정한 품질이 보장되는 결과를 얻을 수 있다. 3] 유지보수 => 코드의 의존관계가 명시되지 않으므로 결합도가 낮아지기 때문에 유지보수가 편리해진다. = 스프링 프레..
JPA - 기본 개념 및 내용정리 ORM(Object-Relational-Mapping)이란? : 객체와 관계형 데이터베이스(RDBMS)의 데이터를 자동으로 연결해 주는 것을 말한다. 객체 - 관계 매핑을 통해 프로그램의 복잡도를 줄이고(트랜잭션 처리 등) 작업을 더 편리하게 할 수 있도록 돕는다. - ORM은 객체지향 패러다임을 관계형 데이터베이스에 보존하는 기술이다. - 객체지향의 구조가 관계형 데이터베이스와 유사하다는 점에서 시작되며, 객체지향을 자동으로 관계형 데이터베이스에 맞게 처리해주는 기법에 대해서 아이디어를 내기 시작했고 그것이 ORM의 개념이 자리잡는 시작점이였다. - SQL Query가 아닌, 메소드의 call을 통해 데이터를 제어할 수 있다. - ORM의 장점 1] 비즈니스 로직에 더 집중할 수 있다. 2] 재사용(생..