TIL 35

Maven VS Gradle

이동욱 님의 '스프링 부트와 AWS로 혼자 구현하는 웹 서비스'를 보면서 토이 프로젝트를 진행하다가 Gradle 빌드 도구를 접하게 되었습니다. 평소에 실무에서도 Maven을 주로 사용하였는데 '두 도구의 차이가 뭘까?'라는 생각에 이어 포스팅을 하게 되었습니다. Maven 프로젝트를 진행하다 보면 많은 라이브러리를 활용해서 개발을 하게 됩니다. 이 때 사용되는 라이브러리들의 수가 많아지면 그만큼 라이브러리들을 관리하는 것이 힘들어지게 됩니다. Maven은 이러한 문제를 해결해주는 일종의 도구입니다. Maven은 내가 사용할 라이브러리뿐만 아니라 해당 라이브러리가 작동하는데 필요한 다른 라이브러리들까지 관리하여 네트워크를 통해 자동으로 다운로드해줍니다. LifeCycle Maven에서는 미리 정의하고 있..

TIL 2022.05.02

Load Balancing, Sticky Session, Session Clustering

동시 접속자가 많은 프로젝트를 진행하면서 아키텍처 부분에 많은 관심이 생겼어요. 최근에 선착순으로 진행되는 이벤트 프로젝트를 전담하면서 세션 처리가 끊어지는 문제점을 맞닥뜨렸는데, 그 부분에 대해서 공부를 하다 보니 로드밸런싱과 스티키 세션, 세션 클러스팅을 알게 되어 포스팅하려 합니다 Load Balancing(로드 밸런싱) 트래픽이 많을 때 여러 대의 서버가 분산처리하여 서버의 로드율을 증가, 부하량, 속도 저하 등 고려하여 분산 처리하여 해결해주는 서비스입니다. 로드밸런싱을 해주는 소프트웨어 혹은 하드웨어 장비를 로드밸런서(Load Balancer)라고 합니다. 동작 방식 1. 네트워크 상단에 가상서버가 존재하여 서버로 들어오는 패킷을 리얼 서버로 균일하게 트래픽을 분산시킵니다. 2. 서버에 장애가..

TIL 2022.04.28

Maven pom.xml 설정 뜯어보기

개발자들이 편하게 서로 협력하면서 일을 할 수 있도록 개발된 프로그램 중 Maven이 있습니다. Maven은 프로젝트를 빌드해주고 라이브러리를 관리해주는 기능들이 있으며, 더 나아가 필요한 라이브러리의 하위 라이브러리까지 버전에 맞게 받아주는 장점이 있습니다. Maven Maven은 앞서 정의한 내용처럼 필요한 라이브러리를 특정 문서(pom.xml)에 정의해 놓으면 내가 사용할 라이브러리뿐만 아니라 해당 라이브러리가 작동하는 데에 필요한 다른 라이브러리들까지 관리하여 네트워크를 통해 자동 다운을 해줍니다. 빌드 순서는 complie->test->package 순으로 진행됩니다. complie은 src/main/java 디렉토리 아래의 모든 소스 코드를 컴파일하는 과정이고, test는 src/test/ja..

TIL 2022.04.22

GitHub Can't connect to any repository 오류 (feat.eclipse)

GitHub를 사용하다 보면 아무것도 건드린 게 없는데 갑작스러운 오류를 만날 때가 종종 있습니다. 오늘은 Can't connect to any repostiry 오류에 대해 포스팅하려 합니다. 무슨 오류일까? 깃허브에 소스를 Push하기 위해서는 기존은 패스워드를 입력해야 했었습니다. 하지만 이제는 GitHub에서 ID/PW 기반의 Basic Authentication 인증을 금지하고, ID/Personal Access Token 방식의 Token Authentication 인증을 요구하고 있습니다. 해결법으로는 GitHub에서 토큰을 발급받아 설정해주어야 합니다. [ 토큰 생성 방법 ] 1. GitHub 로그인 후 오른쪽 상단에 프로필을 클릭해서 Settings 탭을 클릭합니다. 2. 좌측 하단의 D..

TIL 2022.04.20

Object object 해결법 및 multer form-data

실무에서 [Object object]를 만나는 건 생각보다 흔합니다. 이번에 프로젝트를 진행하면서 저는 Vue.js에서 Object로 구성된 배열을 Controller와 Service에 넘겨야 하는 작업을 진행하였습니다. 하지만 Controller에서 Debugging 결과 [Object object]만 나올 뿐 어떤 값도 찾아볼 수가 없었습니다. 해결 과정을 알아볼게요! Multer Module 처음으로 설명할 것은 Multer 모듈입니다. 맨 처음에 form-data를 이용해서 값을 넘길 때, 아무런 값도 받아지지가 않았습니다. express에서는 multipart/form-data 를 다루기 위한 미들웨어인 Multer를 사용한다. node.js를 사용하던 저는 당연히 multer를 설치하지 않아 ..

TIL 2022.04.16