pshpsh777 / atti-api-server

0 stars 0 forks source link

spring-boot 환경세팅 #2

Closed pshpsh777 closed 2 years ago

pshpsh777 commented 2 years ago

What is Spring-boot?

Maven vs Gradle

Start Spring-boot on IntelliJ

  1. Create New Project (empty Project) image image image
  2. Add New Module in Project image image image 위 사진과 같이 Spring Initialize 항목이 있어야하는데 .... image 없다!!!! 왜 없는지 찾아보니까.. Community 버전은 제공하지 않는다고 한다.. 흑 https://start.spring.io/ 페이지의 프로젝트 생성기로 직접 생성해서 세팅해줘야한다
  3. Open project Generate 한 파일 압축풀어서 workspace에 옮기고 Open 하면 프로젝트 생성완료!
pshpsh777 commented 2 years ago

Spring Initialize

image 패키지명 (group, artifact) 정해야되는데 일반적으로 어떻게 네이밍 할까? 이게 뭐라고 고민됨

Package Name

pshpsh777 commented 2 years ago

Jar vs War

pshpsh777 commented 2 years ago

Gradle

build.gradle

settings.gradle

pshpsh777 commented 2 years ago

Annotation

사전적 정의는 "주석" 이라는 의미이다. 자바에서는 프로그램이 특별한 기능을 수행할 수 있도록 추가적인 정보를 제공하는 메타데이터.

용도

  1. 컴파일러가 코드 문법에러 체크할 수 있도록 정보 제공 ex) @Override
  2. 소프트웨어 개발 툴에서 코드를 자동 생성할 수 있도록 정보 제공 ex) 빌드 시 XML파일을 자동으로 생성하거나, 배포를 위해 JAR 압축파일 생성 Getter,Setter,ToString 도 이 용도같은데 ?????
  3. 런타임시 특정기능 실행하도록 정보 제공 ex)

사용

  1. 어노테이션 정의 public @interface AnnotaionName { } public @interface AnnotaionName2 { String elementName1(); int elementName2() default 5; }
    • 어노테이션 적용 대상을 직접 정의할 수 있음 @Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD}) public @interface AnnotationName
    • 어노테이션 유지정책 지정 (SOURCE / CLASS / RUNTIME) 있다는것만 알아두고 나중에 쓸 일 있을때 제대로 찾아보자..
  2. 클래스, 함수, 변수 등에 사용 @AnnotationName; @AnnotationName2(elementName1 = "value", elementName2 = 4); @AnnotationName2(elementName1 = "value");

어노테이션을 직접 정의해서 쓸수도 있구나?? 직접 정의해서 써봐야겠다!!!

Reflection

프로그램이 실행 중에 자신의 구조와 동작을 검사, 조사, 수정하는것

종류

@SpringBootApplication

스프링부트의 가장 기본적인 설정을 세팅해준다.

@ComponentScan

@EnableAutoConfiguration

yim0823 commented 2 years ago

개발 환경을 세팅한다고 하는 건데 이 참에 base-framework 을 만들어 보세요. 필요한 라이브러리들 dependencies (gradle)에 추가하고 application.yaml 혹은 application.properties 에 라이브러리 관련한 설정들을 세팅해보세요. 예를 들어, mariadb 설정을 하겠다라면, url, username, password, driver 를 세팅하 듯 이요.