[우아한테크세미나] 우아한 스프링 부트

minami·2021년 2월 20일
0

🍀우아한 스프링 부트

스프링 부트와 스프링의 차이

  • 스프링부트: 스프링을 쉽게 쓰게 해주는 툴
  • 스프링: 자바 애플리케이션 개발을 쉽게 하게 해주는 프레임워크

스프링 부트 시작하는 법

  1. start.spring.io 사이트

    • maven 또는 gradel 중에 사용할 프로젝트 선택
      • maven 선택
    • 언어 선택
    • spring boot 버전 선택 - maven 선택시
      • snapshot은 개발 중인 것
      • m2는 배포된 것
      • ga는 아무것도 붙어 있지 않은 정식 배포 버전 - 선택
    • 프로젝트 메타데이터
      • 프로젝트를 식별할 수 있는 정보들 입력
      • 패키징에서는 jar, war 선택 가능. war는 웹 애플리케이션 아카이브.
    • 의존성
      • 스프링 웹, 타임리프 등
      • 구성요소는 그룹아이디, 아티팩트아이디, 버전
  2. 스프링 프로젝트를 IDE에서 오픈

빌드: 의존성 관리

  • pom.xml에서 dependencies를 확인해 보면 버전이 적혀 있지 않은데 spring boot starter parent를 상속받고 있고, spring boot starter parentspring boot dependencies를 상속받고 있는 것을 알 수 있다.
  • dependencyManagementspring boot dependencies에 맞는 버전이 있으므로 굳이 찾아서 입력해주지 않아도 된다.
  • lombook에서 맞는 버전을 찾아서 가져와서 삽입해도 되지만 dependencyManagement에서 상속받아 사용되므로 그대로 놔두자.

빌드: 애플리케이션 실행

  • mvn spring-boot: run - 메이븐 플러그인에서 선택해서 사용
  • main 클래스 실행: 개발 시 가장 많이 사용하는 방법
  • jar 패키징 & java jar
    • 메이븐의 package로 해당 프로젝트의 애플리케이션들을 모아서 jar파일을 생성할 수 있다.
      • fat jar 또는 uber jar라고 부르기도 한다.
  • 스프링 부트에서는 톰캣이 내장되어 있다.
  • 만약 8080포트가 이미 사용중이라는 에러가 뜨면 포트를 변경하거나 프로세스를 수동으로 강제로 끈다.

코딩: 개발 툴

  • 템플릿을 수정한 경우에는 바로바로 변경사항을 확인할 수 없음
  • pom.xml의 dependencies에서 <groupId>org.springframework.boot</grounpId><artifatId>spring-boot-devtools</artifactId>를 추가하면 자동으로 리스타트(재기동)된다.
    • 빌드: 해당 프로젝트를 jar파일로 묶어서 새로운 jar파일을 생성하는 것
    • 재기동: 해당 jar파일을 실행하는 것
    • 해당 dependency는 포함한 채로 빌드 후 배포를 해도 상관없다.

코딩: 자동 설정

  • 애플리케이션의 @Configuration에서 @Bean을 설정
  • @Bean의 순서는 의존성이 없는 경우에는 그리 중요하지 않으며, 의존성이 있는 경우에는 의존성에 따라 순서대로 만들어진다.

코딩: 외부 설정 파일

  • 예를 들어 application.properties에 message를 따로 뺄 수도 있다.
  • config 디렉토리 안의 application.properties가 우선순위가 더 높다. (config 디렉토리 한정)
  • application.properties는 가장 구체적이고 가까운 위치에 있는 설정이 우선순위가 더 높다.

배포: 도커 이미지

  • 도커와 dive 설치 후 커맨드라인 dive 명령어로 계층 구조를 확인할 수 있다.

관리: Actuator

  • dependency에 artifactID를 actuator로 넣어준다.
  • endpoint를 확인할 수 있다.
  • http localhost:8080/actuator/loggers를 커맨드창에 입력하면 log확인 가능
  • 런타임 중에도 http POST localhost:8080/actuator/loggers/프로젝트 주소 DEBUG 를 커맨드창에 입력하면 모드를 DEBUG로 변경 가능
  • 보안과 관련해서는 특정 사용자만 접근 가능하도록 따로 security를 걸면 된다.
  • BUT 스프링 부트 어드민을 사용하게 되면 시각화되어 있으므로 버튼 하나만으로 모드 변경 즉시 적용 등 가능!!

✨세미나 후기

개발 공부를 시작한 후로 이런 세미나를 들어본 것은 이번이 처음이어서 뭔가 떨리기도 하고 신기한 느낌이었다. 아직 수강 중인 국비교육도 Java 이후 DB까지만 진도가 나갔고, 이제 겨우 html, css, js, jquery를 공부할 차례라서 스프링에 대해선 아예 모르는 상태이다 보니 미리 경험하는 차원에서 들어본 거라 2시간짜리 세미나 후반부로 갈수록 점점 더 모르겠다😵 상태ㅎ...였지만 강의도 너무 재밌게 해주셨고, 실시간 채팅에서도 유용한 정보를 많이 알려주셔서 재밌었다.
나중에 스프링 강의 시작하면 지금 미리 들어본 것들이 조금이나마 더 도움이 될 수 있지 않을까 하는 기대를 안고 아직 나 혼자 끝내지 못한 자바 정리를 다시 해 봐야지. 혼자서 따로 공부하니까 훨씬 이해도 더 잘 되는 것 같으니 잘 정리해서 TIL도 좀 더 바짝 진도 따라가고... (과연 언제쯤)

profile
함께 나아가는 개발자💪

0개의 댓글