전체 글 168

스프링 부트 핵심 라이브러리

Springboot 핵심 라이브러리(2.3.1.RELEASE) spring-boot-starter-web spring-boot-starter-tomcat : 톰캣(WAS) spring-webmvc : 스프링 웹 MVC spring-boot-starter-thymeleaf : 템플릿 엔진 spring-boot-starter(공통) spring-boot spring-core spring-boot-stater-logging slf4j : 로깅 인터페이스 logback : 로깅 구현체 Springboot 테스트 라이브러리 spring-boot-starter-test junit : 테스트 프레임워크 (springboot2.2 부터 junit5가 기본적으로 탑재됨) mockito : 목 라이크러리 assertj :..

Java/Spring 2021.12.03

[Spring] 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 후기(+삽질)

스프링부트와 AWS로 혼자 구현하는 웹 서비스를 통해 공부한 개인적인 후기를 남깁니다. 이 책을 선택한 이유 평소 팔로우하던 개발자 중 한분이시고, 무중단 배포까지 다룬다는 점에서 기대하고 고르게 되었습니다. 그리고 사실, 이론 공부 보다는 손으로 만지작 거릴 수 있는걸 더 좋아하는 성향입니다. 그래서 실전 예제가 많이 포함되어있는 책으로 먼저 맛을 보고, 이론을 공부하고자 이 책을 선택했습니다. 이 책으로 공부하며 초~중반 프로젝트 진행하는 내용을 보며 초반에는 IntelliJ 설치, 프로젝트 환경 구성 등등 간단히 따라할 수 있는 예제들로 시작하여 빠르게 따라할 수 있었습니다. 2장 ~ 5장 까지 테스트코드 작성, JPA 맛보기, 머스테치로 화면 만들기, 스프링 시큐리티와 OAuth2로 소셜로그인 구..

Java/Spring 2021.11.17

[우아콘2021] 서버 성능테스트, 클릭 한 번으로 끝내볼 수 있을까? 내용정리

서버 성능테스트, 클릭 한 번으로 끝내볼 수 있을까? feat. 김덕수님(배민서비스개발팀) 세션이 도움이될 사람 현재 운영중이 서비스에 트래픽이 많고, 서버 성능테스트를 자주 하는 사람 운영중인 서비스에 점점 트래픽이 늘어나는 사람 대규모 트래픽을 안정적으로 처리하기 위해, 서비스 배포 전에 어떤 일을 해야 하는지 알고 싶은 사람 발표에서 전제하는점 1.서버환경 서버환경은 온프레미스가 아니라, 클라우드환경인 것을 전제 함 2.모니터링 환경 웹 콘솔을 통해서, 모니터링이 가능한 환경인 것을 전제로 함 서버 성능테스트 세션 내용 서버 성능테스트란, API 요청이 많은 상황에서 서버가 어떻게 동작하는지 확인하기 위해 수행하는 테스트 서버 성능 테스트를 하는 이유? 서버가 얼마나 요청을 잘 처리하는지 측정하기 ..

이것저것 2021.11.17

맥북 에어 M1에서 Docker로 Jenkins 서버 설치하기

최근 공부를 하며, 간단한 SpringBoot 프로젝트를 만들었습니다. 책에서는 AWS를 이용한 CI/CD 자동화 예제가 나와있었는데, 저는 이미 한번 해봤던 내용이었습니다. 그래서 예전에 해보려다 실패했던 Jenkins를 이용해서 한번 해보려고 합니다. Jenkins 설치 및 실행 사실 예전에 도커로 Jenkins 서버를 구축하려고 했습니다.. 그런데 M1 맥북이라 CPU가 arm 아키텍처로 되어있는데, 아직 Jenkins의 공식 도커 이미지는 아직 arm을 지원하지 않습니다. 그래서 포기했다가, 최근 arm에서 사용할 수 있도록 만들어진 이미지를 발견하여 다시 시도해 봤습니다. 참고 ARM Developer ARM용 Jenkins 이미지 Jenkins 공식 이미지 아래는 CPU 아키텍처별 Jenkin..

인프라 2021.11.13

[Git] git 공부하기 좋은 사이트

git의 기본 명령어를 한 단계식 연습하며 공부할 수 있는 사이트이다. (commit, rebase, reset, cherry-pick, pull, fetch, merge, push 등) 화면에서 git 명령어를 입력하면, 애니메이션으로 해당 명령어를 보여주기 때문에 굉장히 이해가 잘된다. Git 공부하실 분들께 강력 추천!! Learn Git Branching An interactive Git visualization tool to educate and challenge! learngitbranching.js.org

버전관리 2021.11.12

[Git] git reset 명령어의 옵션

현재 커밋한 내역을 과거시점으로 되돌리고 싶을 때 사용하는 명령어이다. 주로 로컬에 한 커밋이 잘못되었을 경우 고쳐야할 때 많이 쓰인다. git reset --soft HEAD^명령은 현재 HEAD가 가리키는 커밋 이전의 상태로 되돌리며, 변경사항을 유지하며 staged 상태로 만든다는 것이다. 쉽게 말하면, 방금 한 커밋을 하기 직전 상태로 되돌린다는 것이다. git reset은 세 가지 옵셔닝 있는데, 다음과 같다 soft : HEAD가 가리키는 브랜치를 옮긴다. (변경사항은 유지, staged 상태로 만듦) mixed(default) : Index를 HEAD가 가리키는 상태로 만든다. (변경사항은 유지, unstaged 상태로 만듦) hard : 워킹 디렉토리를 Index의 상태로 만든다.(변경사항..

버전관리 2021.11.11

[회고] 퇴사 회고

지난 금요일, 인턴까지 포함하여 약 2년 가까이 다닌 회사를 그만뒀다. 스스로를 잘 알기에, 휴식 기간이 길어지면 나태해질 것 같아 주말만 쉬고 다음주 1주일 내에 책 한권 떼기를 목표로 잡았다. 그러고 바로 공부를 시작하다 보니 이제야 회고를 작성하게 되었다. 회사에 입사하게된 계기 시간을 거슬러 올라가 약 3년 전으로 되돌아 간다. 당시는 대학교 3학년 이었는데, 2학년 까지 공부하고 군대를 갔다 와서 바로 복학했었다. 당시에 들어갔던 과동아리 선배들 중 여럿이 A회사에 인턴 혹은 정규직으로 입사했다는 소식을 들었다. 그 회사는 부산경남권에서 알아주는 대기업의 계열사여서 부럽기도 하고 부모님도 좋아하실 것이라 생각하여 가고싶다는 동기부여가 강하게 됐다. 나름 정말 열심히 1년을 보내고, 3학년 2학기..

이것저것 2021.11.11

생활코딩에서 본 MSA에 대한 내용 정리

페이스북에서 MSA에 대한 좋은 내용을 보게되어 정리한 내용입니다. MSA 란? 간단히 말하면, MSA는 복잡한 비즈니스 로직을 관리하기 쉬운 단위로 분리(decoupling)하는 것이다. MSA와 API MSA에서 복잡한 비즈니스 로직을 수행하려면, 서비스들 끼리 통신을 해야한다. 이 중에서 API는 서비스들 끼리 통신하는 여러 방법 중 하나에 불과하다. 그런데 만약 서비스간에 API로 통신하게 되면, 복잡도가 증가하여 관리가 힘들진다. 예를 들어서, 한 서비스가 다른 여러개의 서비스를 호출했다고 가정해 보면, 다음과 같은 고민들이 생겨난다. 호출한 여러 서비스들 중 하나가 실패한다면? 다른 서비스들을 롤백은 어떻게 하지? 그래서 API보다 더 권장되는 방법은 Kafka, RabbitMQ와 같은 메세지..

아키텍처 2021.11.11