전체 글 124

JPA의 정의와 장·단점

현대의 웹 애플리케이션에서 관계형 데이터베이스(RDB)는 빠질 수 없는 요소입니다. 그러다 보니 객체를 관계형 데이터베이스에서 관리하는 것이 무엇보다 중요하게 되었습니다. 관계형 데이터베이스가 웹 서비스의 중심이 되다 보니 현업 프로젝트들은 대부분 애플리케이션 코드보다 SQL로 가득하게 되었습니다. 이 부분을 해결하고자 JPA가 나오게 되었습니다. JPA란? JPA(Java Persistence API)는 자바 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음이다. 즉, 실제적으로 구현된 것이 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임 워크이다. ORM 애플리케이션 Class와 RDB의 테이블을 연결한다는 뜻이며, 기술적으로는 애플리..

TIL 2022.05.10

가짜 데이터 생성 Faker.js 파헤치기

실무에서 단위 테스트를 작성할 때 가짜 데이터가 필요할 때가 왕왕 있습니다. 저는 실무에서 여러 군대에서 faker.js를 사용하여 테스트 코드를 작성했었는데 특히 동접자 3만 명 이상의 데이터가 들어왔을 때, 데이터를 가져오는 과정에 문제가 없는지에 대해 체크를 할 때 유용하게 사용했습니다. 3만 개의 데이터를 하드 코딩하는 것은 당연히 무리가 있을 것입니다. 또한 프로젝트 상 데이터가 중복되면 안 되는 상황이어서 faker.js를 사용하게 되었습니다. Faker 시제품을 개발하거나 단위 테스트를 작성할 때 가짜 데이터가 필요할 때가 자주 있습니다. Faker란 영어 뜻 그대로 가짜 데이터를 쉽게 생성할 수 있는 라이브러리입니다. 사용 방법으로는 ES 모듈을 사용하는 프로젝트에서는 import 키워드를..

TIL 2022.05.03

Maven VS Gradle

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

TIL 2022.05.02

일식 CEO 출신 주니어 개발자 2021년 회고록

본문에 앞서 기존 블로그에서 현재 블로그로 이전했기 때문에 이 글은 작년에 썼던 회고록이며 1년 치의 회고록이 아닌, 개발에 입문하기 전까지의 저의 다사다난했던 삶을 기록했습니다. 일식 CEO 출신 개발자의 길을 걷다 2021년 회고록이지만, 나의 26년을 뒤돌아 본 회고록을 쓰려한다. 당사자인 나도 생각하지 못한 길인 '개발자'라는 직업을 어느 누가 생각이라도 했을까? 어느 날, 뉴스에서 한국 성인들은 일평생 평균적으로 직업이 3번 바뀐다는 통계표를 본 적이 있다 그렇다. 지금 나는 26살 어린 나이에 한 번의 직업이 바뀌는 과정안에 있다 내 첫 번째 꿈은 뭐였을까? 첫 번째 꿈이 생긴 군대 시절로 시간을 거꾸로 흘러가 본문을 시작하려 한다 22년 평생 책에 손을 대지 않던 아이 '세상을 바꾸는 시간,..

회고록 2022.04.29

Load Balancing, Sticky Session, Session Clustering

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

TIL 2022.04.28

신입 개발자 동시 접속자 2만 명 프로젝트 경험

입사 4개월 차에 동접자 2만명이 넘는 프로젝트 백엔드단을 맡게 되었습니다. 이벤트성 사이트로 선착순 10,000명을 채우면 이벤트 종료가 되는 프로젝트로 빠르면 일주일 내에 마감이 될 거라는 말을 듣고 지레 겁먹었던 기억이 나네요. 제가 설계했던 부분과 어떤 점에 초점을 두고 개발했는지 공유해보려고 합니다. 개요 앞서 말씀드린 것처럼, 상시 이벤트가 아닌 정해진 날짜의 선착순 이벤트이며 회사 관련 프로젝트이기 때문에 모든 것을 자세히 적어놓을 수는 없을 것 같아요. 회사 측에는 접속자가 들어온 통계를 보는 그라파나(Grafana) 대시보드와 제가 설계했던 과정은 포스팅하는 것을 허락해주셨어요. 이번 프로젝트는 선착순 10,000명을 대상으로 했던 것이며 참여 인원들은 다시 한번 선착순으로 마음에 드는 ..

Project/Team 2022.04.27

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

컴활 1급 필기 합격 단기간(5일) 공부법 및 후기

컴활 1급은 컴퓨터 활용능력 1급의 준말로 대한상공회의소에서 시행하는 사무정보 분야의 국가기술자격시험입니다. 이 자격증은 공무원 지원에 가산점, 공공기관 채용 우대, 승진 우대, 학점은행제 학점 인정 등 쓰임새도 다양하기 때문에 따놓기만 한다면 언제든 유용하게 사용할 수 있습니다. 이번 포스팅에서는 노 베이스 상태인 제가 5일 만에 합격한 공부법과 공부하면서 도움이 되었던 강의들을 소개해보려 합니다. 컴퓨터 활용능력 1급 컴활 1급 자격증 시험은 필기시험과 실기시험으로 나뉘어 있습니다. 필기시험은 컴퓨터 일반/스프레드시트 일반/데이터베이스 일반 총 3개 과목으로 나뉘고, 실기시험은 스프레드시트 실무, 데이터베이스 실무 총 2개 과목으로 나뉩니다. 오늘 포스팅은 필기를 중점으로 하려고 합니다. 시험문제는 ..

자격증 2022.04.19

중소기업 청년 전세대출(중기청) 80% 솔직 후기 및 방법

중기청이란 만 34세 이하의 무주택 세대주이면서 중소/중견기업에 다니는 청년들에게 낮은 금리로 전세대출을 해주는 좋은 국가제도입니다. 은행가심사 단계를 시작으로 매물 찾기, 계약하기, 본 심사, 확정일자 순으로 포스팅하려 합니다. 중기청 - 1.2% 연금리로 최대 1억원까지 가능한 중소/중견기업 취업청년 전월세보증금 대출이다. - 중기청 대상자는 만 34세 이하의 무주택 세대주이며 신청일 기준 중소기업, 중견기업에 재직 중이거나 청년 창업자금을 지원받는 사람(신용보즘기금, 중소기업 진흥공단 또는 기술보증금)이 해당된다. 대상 나이는 만 34세로 정해져 있지만 병역법에 따라 병역의무를 다한 자는 만 39세까지 해당된다. - 중기청 소득 기준은 미혼 단독 가구 기준 연소득 3천5백만 원 이하이고, 기혼자인 ..

ETC 2022.04.18