inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[인프런 워밍업 스터디 클럽 0기_BE] 3주차 회고록 정리

dmstjd0214
0

요일 별 내용 정리

Day11

배포와 Profile 사용법

예전에 배포를 수행하며, 막연하게 AWS를 사용하여 배포를 진행했지만 보안이나 기능적인 측면에서는 고려하지 않고 진행을 했었다.

내가 작성한 코드를 작성하며, 하나의 기본 셋팅을 가지고 개발을 진행하고 있었는데, Profile이라는 개념을 알고 적용을 해보았습니다. h2 DB를 메모리에 저장하면 휘발되며, 개발단계에서 사용하는 것을 알았습니다.

예전에 테스트 코드를 작성하며 작업을 진행할 때, h2 DB를 활용하여 테스트 마다 초기화를 진행해주면 편하다 생각을 했습니다.

spring:
  config:
    activate:
      on-profile: local

//... 설정 값
  datasource:
    username: "sa"
    password: ""
    url: "jdbc:h2:mem:library:MODE=MYSQL;NON_KEYWORDS=USER"
    driver-class-name: org.h2.Driver
  h2:
    console:
      enabled: true #
      path: /h2-console #

부트에서 실행할 때 ActiveProfiles 설정 값을 내가 작성한 프로파일명으로 실행됩니다.

JUnit을 활용할때는 @ActiveProfiles("프로파일명") 어노테이션을 활용하여 데이터베이스 환경을 변경할 수 있습니다.

 

테스트 코드를 작성하고 실행할때, 데이터베이스에 대한 정보가 부담스러워 다른 방법이 없었나 찾아봤는데 Profile이라는 기능을 활용하여 테스트에 대해 원활하게 작업을 할수 있다 생각하여 빨리 활용하고싶다는 생각이 들었습니다.

 

git과 github

깃허브는 예전에 취업하기전에 포트폴리오를 올려 사용했었고, 취준생일때 git과 github는 같은것이라 생각했는데, 강의에서 나왔듯이 아예 다른 내용인걸 듣고 아직 많이 부족하다 느꼈습니다. 또한 github를 저는 클라우드 형식으로만 사용했는데 다양한 기능을 배울 수 있어 설레는 마음으로 강의를 시작했습니다!

저는 이미 깃허브를 사용해서 아이디를 생성하지 않았습니다 .. !!!

강의를 진행하기전에 library-app을 이미 푸쉬 작업을 하고있었고, 그 내용을 다시 복습하는 내용으로 강의를 들었습니다.!!

하지만 sourcetree를 사용해보았고, 직접 터미널에서 깃을 사용해본적은 없었습니다.

또한.. AWS도 예전에 포트폴리오를 사용하고 배포할때 사용해본 경험이 있었습니다. 진짜 기본기를 쌓는다는 마음으로 가볍게 훑고나니 정말 유익했었습니다.

 

 

Day12

리눅스 명령어 정리

예전에 jar파일을 실행하다 렉이 걸려서 멈춘 경험이 있었고 인스턴스 종료를 눌렀는데, 그게 삭제인줄 모르고 가상머신을 날린 기억이 있었다.. 강의를 중간에 보다보니 메모리 대신 disk의 일부를 사용할 수 있도록 하는 명령어를 보고 아 저렇게 하면 메모리를 더 쓸수 있겠구나라고 생각했습니다.

 

foreground와 background의 차이를 공부하여 서버를 종료할 때 같이 종료가 되지않도록 배웠습니다.

 

Day13

plugins {
	id 'java'
	id 'org.springframework.boot' version '3.2.2'
	id 'io.spring.dependency-management' version '1.1.4'
}
group = 'com.group'
version = '0.0.1-SNAPSHOT'

java {
	sourceCompatibility = '17'
}
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compileOnly 'org.projectlombok:lombok'
    runtimeOnly 'com.h2database:h2'
    runtimeOnly 'com.mysql:mysql-connector-j'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    implementation 'org.springframework.boot:spring-boot-starter-aop'
}

왜 저렇게 나눴는지 찾아보니 빌드를 진행할때, 성능적인 이점을 얻을 수 있도록 구분을 합니다라고 나와있어 구분을 하려는 이유를 알았습니다.!!

 

스프링과 스프링부트 차이

yml과 properties , lombok

YAML의 문법

spring:
 config:
  activate:
   on-profile: dev
#spring: 

회사에서는 properties를 활용하는데 관리하기가 불편하면서도 편한거같다 생각했습니다. yml구조로 설정을 하면 가독성이 좋아져 딱딱 나눠져 있어서 좋았습니다.

그리고 롬복을 예전부터 많이 사용하여 손에 많이 익었으며,내가 알고있던 내용과 부족했던 내용 새로운 내용을 공부하게 되어 너무너무 좋았습니다.

그리구.. 마이그레이션쪽은 이미 3.0을 사용하고있어 제 코드에 직접적으로 사용해보진 못했지만 이런 내용이 있고 다음에 활용할 수 있다 생각했습니다 실무에서나 스프링부트 4.0이 나온다면

 

 

강의를 들으면서 점점 스터디가 끝난다는 생각에 아쉽다 생각했습니다..ㅜ 그래도 마무리가 아름다워야 좋다 생각하여 끝까지 열심히 들을 생각입니다!!!

 

 

 

Day14

드디어 강의 마무리이며, 마무리 영상을 보면서 내용을 정리하는 시간을 가지려했는데 엄청 도움이 되는말들이 많아 좋았습니다.개발하면서 방향성이 너무 많아 어려웠는데 마무리 강의보면서 방향성을 다시 잡을 수 있었습니다.

 

OOP나 디자인패턴의 실무 스킬을 배워야 스프링의 원리를 알아갈수 있다.

스프링에 대한 모듈은 인프라나 보안 이론지식이 필요하다.

기반 실무 스킬에 대한 내용이 있었고, 필수적인 내용이라 생각하여 꾸준히 공부를 해나가야 생각했습니다!

프레임워크를 배제하고 내 기본기라 생각하면 될꺼라 생각했다.

  1. IT 기술 블로그중 신입 개발자, 파일럿 프로젝트 관련 글을 읽기.

  2. 다른 사람은 어떤방식으로 코드를 작성했고, 왜 그렇게 작성했는지

     

    시간이 된다면, 코틀린을 공부해보자.

그리고.. 인스턴스 종료에 대해 나왔는데.. 얼마전에 프로젝트를 진행하며, 종료버튼을 누르는게 삭제인지.. 모르고 삭제된경우가있었다.. 주의를 해야겠다 생각했습니다..

 

추가강의도 너무 많이 도움이 됐습니다.


미니프로젝트

미니프로젝트는... 시간만 많았다면.. 정말 설계부터 완벽하게 설계한다음 진행했어야했는데 저 맛있는 내용을 너무 소화하지못하고 마무리된거같아 아쉬웠습니다. 해당 내용은 스터디가 끝나더라도 마무리를 꼭 지어 끝내야겠다 생각했습니다.

팀원분들과 같이 코드리뷰를 진행하며, 모르는내용에 대해 많은 것을 배웠고 행복했던시간이였던거같습니다.

설계만 작성하고 그 단계별 개발 진행 사항은 작성하지 못한것이 아쉽습니다. 이또한 천천히 마무리를 진행할 예정입니다.

notion : https://silvercastle.notion.site/51409fcd18644974819dc23cdc2e902b?pvs=4

github: https://github.com/backgom1/Inflearn_BE0_Study_mini/tree/develop/backgom1/ensmini


라이브강의에서 코드리뷰를 진행해주시는 내용이 있었는데 딱딱 제가 부족한것을 찝어줘서 너무 시원했습니다 ㅋㅋㅋ!!

도메인계층에 대해 다시한번 생각을 하게 된 계기가 있었고, 강의나 책을 읽어서 공부를 본격적으로 해봐야겠다 생각을 했습니다.

 

답변 0