본문 바로가기

개발/Spring

(8)
@SpringBootApplication의 동작 방법 @SpringBootApplication 기능 Spring Boot에서는 개발자들의 편의성을 위해서 자동 구성, 구성 요소 스캔 등을 사용하게 됩니다 @AutoConfiguration을 통해서 Spring Boot에 자동 구성 기능을 활성화 하게되고,@ComponentScan, @Component 애플리케이션에 있는 패키지를 스캔하여 스캔 대상에 포함시키고,@Configuration을 통해 ApplicationContext에 빈을 등록하거나 추가 구성 클래스를 가져오는것을 허용할수 있습니다 위에서 언급한 기능들을 모두 합친것인 @SpringBootApplication 입니다 @SpringBootApplication // @Configuration @EnableAutoConfiguration @Compon..
Spring(스프링) Bean을 통해 효율적으로 코딩 하기 new 연산자를 통해 객체 생성 장점ObjectMapper objectMapper = new ObjectMappeer(); 우선 new 연산자를 통해서 객체를 생성하면 아래와같은 장점을 얻을수 있습니다 단순함과 명확성: new 연산자를 통해 객체를 생성하게 되면 별도의 설정없이 필요한 객체를 바로 생성 가능합니다경량성: 별도의 Spring 컨테이너를 사용하지 않기떄문에 오버헤드가 적고 애플리케이션 시작속도가 더 빠를수 있습니다의존성 낮음: 타 프레임워크에 의존하지 않고 순수한 Java 코드를 작성할수 있어 프레임워크에 대한 종속성이 낮아집니다 간단하게 객체를 생성할수 있기떄문에 특별한 제약조건이 없으면 사용하게 됩니다클래스가 실행되면 매 순간 객체가 만들어져 Heap에 저장되고 소멸하는 특징을 가지고있습..
Springboot에서 Mybatis 사용하기 저번 게시물에서 JDBC를 이용해서 데이터베이스와 통신하는 방법에대해서 알게되었다JDBC로 프로젝트를 만들어보면 알겠지만 매번 데이터베이스와 연결하는 작업은 귀찮고 번거로운 일이다거의 중복코드만 70% 이상발생하는것같다  그외에 예외처리를 하다보면 별거없는 코드도 정말 난잡해져서 유지보수하기 귀찮아진다  이를 저번게시글에서 만든 코드들을 최대한 덜어내고 Mybatis를 이용해서 정말 간단하게 데이터베이스와 통신하는 방법에대해서 알아보도록하자참고로 Gradle로 프로젝트를 진행한다  시작하기 앞서 Mybatis 버젼 3.x.x이상 버전을 꼭! 설치해주길 바란다  implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.0' 자기 ..
Springboot에서 MySQL 쿼리문 작성하기(JDBC) 저번게시글에서 MySQL 계정을 생성하고 스키마를 만들어보고 인텔리제이와 연동을 해보는 작업을했다이번에는 연동되어있는 데이터베이스에 직접 SQL문을 날려서 값을 넣고 빼는 작업을 해보겠다우선 데이터베이스에 SQL을 보내주기 위해서는 JDBC라는것을 사용해야하는데 간단하게 JDBC에 대해서 알아보도록 하자    JDBC란 무엇일까먼저 JDBC는 Java DataBase Connetivity로써 자바프로그램이 데이터베이스와 서로 연동되어있을때 데이터를 주고받을수있게 해주는 인터페이스 라고 보면 될거같다 기본적으로 애플리케이션과 DBMS(여기선 MySQL) 사이에서 번역해주는 역할을 하는데 여기서 중요한점은 왜 JDBC가 나왔는지 알아봐야한다 만약에 상상을해보자 많은 관계형 데이터베이스들의 통신방법들이 전부 ..
SpringBoot를 이용하여 MySQL과 연동하기(JDBC) SpringBoot를 이용해서 MySQL을 연동하고 사용하는 방법까지 알아보도록하자우선 강의를 시작하기 앞서 IDE는 Intellj(인텔리제이)를 사용하고 Gradle로 진행하지만 Maven을 사용하는 사람도 어차피 비슷하니깐 따라오면된다     프로젝트생성   이름은 DBcheck, 언어는 Java, 타입은 Gradle 그리고 패키지생성은 War로 하여 프로젝트를 생성해주고사용하는 Dependency로는 Spring Web, Mysql Driver를 체크해주고 시작하였다추가로 여러라이브러리를 사용할수있는데 그건 사용자가 입맛에 따라서 더 추가해주면 좋을꺼같다    프로젝트 생성후에는 항상 하는 습관들이 있는데 우선 main -> java -> DBcheckApplication을 실행시켜서 정상적으로 설..
Spring(스프링)에 IoC, DI 특징 자세히 알아보기 스프링에는 엔터프라이즈급 개발을 편하고 추후 유지관리가 쉽게하기 위해서 다양한 기능들을 제공해준다그에 근간이 되는 기능은 강력한 디자인 패턴인 IoC, DI, AOP 등에 있다고 생각한다   IoC (제어의 역전) 사실 IoC는 비단 스프링에서만 사용하는게 아니라 큰 포괄적인 의미는 다음과같다개발자가 구현한 프로그램이 외부에 의해서 제어되는 디자인 패턴을 의미한다보통 프로그래밍을 하게되면 외부 라이브러리 코드를 개발자가 가지고 직접 이용하여 구현을 하게된다개발자가 직접 외부코드를 제어하여 프로그램을 설계하고 구현을 하게되는데 IoC 디자인패턴은 반대로 간다 외부코드가 프로그래머의 코드를 호출하여 동작한다설계 목적상 제어반전을 통해서 얻을수있는 이점은 다음과같다 시스템이 어떻게 동작할지 고민할필요없이 맞춰..
Spring boot Validation과 @Valid 애노테이션 활용하기 기존 Spring boot 2.3 이전에는 기본으로 제공하는 의존(spring-boot-start-web)에 있었지만,이후부터는 별도에 라이브러리로 제공된다    Validation 의존성 추가먼저 Validation을 활용하기 위해서는 따로 추가해줘야 한다 implementation 'org.springframework.boot:spring-boot-starter-validation'       @Valid 사용하기@Getter@Setterpublic class UserRegistrationDto { @NotBlank(message = "이름은 필수 입력 항목입니다.") private String name; @NotNull(message = "나이는 필수 입력 항목입니다.") @M..
SpringbootApplication에 run() 메서드 실행시 일어나는 일 Spring Boot를 이용해 서버를 실행할때 실행하는 run() 메서드는 어떤 역할을 할까?   run() 메서드 기본적으로 run() 메서드를 호출하면 Application의 초기화, 실행, 종료 까지 많은 과정들이 진행됩니다 @SpringBootApplicationpublic class MySpringBootApplication { public static void main(String[] args) { SpringApplication.run(MySpringBootApplication.class, args); }}  SpringApplication.run(MySpringBootApplication.class, args) 메서드를 실행하게 되면,Spring Boot가 애플리케이..