본문 바로가기
메뉴

분류 전체보기39

주니어 백엔드 개발자가 반드시 알아야 할 실무 지식 - 5장

이번 주차에는 5장 하나만 나가기로 했다. 비동기 연동비동기 방식을 사용해도 되는 경우연동에 약간의 시차가 생겨도 문제가 되지 않음실패했을 때 재시도가 가능함실패했을 때 나중에 수동으로 처리 가능실패했을 때 무시해도 괜찮음비동기 연동을 구현하기 위해 아래에 5가지 방식 소개 별도 스레드로 실행Thread를 생성하는 방법java.lang.Thread를 이용해 스레드 객체를 직접 생성한다.// Runnable 함수형 인터페이스를 구현한 인스턴스를 파라미터로new Thread(**Runnable** instance).start();// 함수형 인터페이스 람다식으로 변경 가능new Thread(() -> code).start();스레드 풀 사용ExecutorService 를 이용각 워커 스레드는 OS 네이티브 ..

이것이 자바다 - 1~4장

지금까지 나는 언어를 책으로 공부해본 적이 없다. 백엔드 개발자를 희망하고 지금까지 스프링 부트 프로젝트를 진행해 왔는데, 자바 언어에 대한 깊은 이해를 한 적이 없어 2018년 혹은 2019년도에 산 책을 꺼내본다. 지금까지 코드 잘 작성해왔고 요즘 AI가 다 잘 해주는데 굳이? 라는 생각을 할 수 있다. 맞다. 근데 지금 이 시기가 내가 자바에 대해 잘 몰랐던 부분과, 추상적으로 알고 있는 개념들을 명확하게 이해할 수 있는 마지막 기회라고 생각해 공부하려 한다. 개정 전 책이라 최신 문법 일부가 빠져있어서 해당 부분은 책을 모두 읽고 난 후에 보충하여 공부할 계획이다. 1장: 자바 시작하기java : JVM 실행 → 바이트코드 로드/검증/실행 (바이트코드 → 기계어)인터프리터JIT 컴파일러javac..

주니어 백엔드 개발자가 반드시 알아야 할 실무 지식 - 3, 4장

3장 - 성능을 좌우하는 DB 설계와 쿼리인덱스조회 트래픽을 고려한 인덱스 설계TPS와 DB에 축적되는 데이터양 따라 적절하게 인덱스를 추가할 필요가 있다. 트래픽과 읽기 시간에 따라 풀스캔을 해도 괜찮을 수 있다.왜 인덱스를 무작정 추가하는건 안좋을까?쓰기 성능 저하 (INSERT/UPDATE/DELETE 비용 증가)INSERT 할 때마다 각 인덱스에도 항목을 추가UPDATE 할 때 인덱스 컬럼이 바뀌면 기존 인덱스에서 제거 + 새로 추가DELETE 도 인덱스에서 제거저장공간 + 메모리(버퍼 캐시) 낭비디스크 용량 증가중요한 데이터/핫 인덱스가 메모리에 못 올라가고 밀려남 → 캐시 미스가 늘어 읽기 성능이 떨어질 수 있음버퍼 캐시 : DB는 디스크에서 페이지(블록)를 읽어오면 메모리(버퍼 캐시) 에 올..

백준 1949번 - 우수 마을 [C++]

https://www.acmicpc.net/problem/1949 이 문제를 풀고난 후, 독립 집합이라는 새로운 개념을 배웠다. 이를 정리하기 위해 기록한다. 용어 정리 독립 집합(Independent Set) : 그래프에서 서로 연결되지 않은(인접하지 않은) 정점들의 집합최대 가중치 독립 집합(Maximum Weight Independent Set) : 그래프의 여러 정점 중 서로 인접하지 않은 정점들을 선택하되, 선택된 정점들의 가중치(weight)의 합이 가장 커지는 집합극대 독립 집합(Maximal Independent Set) : 독립 집합이면서, 집합에 정점을 추가하면 더 이상 독립성을 유지할 수 없는 상태의 집합최대 독립 집합 (Maximum Independent Set): 정점의 개수가 가..

백준 1464번 - 뒤집기 3 [C++]

https://www.acmicpc.net/problem/1464 풀이 문자열의 $i$번째 문자를 처리할 때, 결과적으로 그 문자를 지금까지 만든 문자열의 맨 앞에 붙이거나 / 맨 뒤에 붙이는 두 선택으로 생각할 수 있다. 증명 입력 문자열 $S = s_1s_2...s_N$ $i$번째 결정을 하는 순간, 문자열은 (결정된 $i - 1$개의 문자로 이루어진 문자열) + $s_i$ + (나머지) 가 된다.여기서 "결정된 $i - 1$개의 문자로 이루어진 문자열"을 $P$ 라 해보자. 다시 써보면, $P$ + $s_i$ + (나머지)이다.그리고 문자열 $P$ 만 보면 만들 수 있는 사전순으로 가장 빠른 문자열이다. $i$ 단계에서 할 수 있는 선택안 뒤집는다.$P$ + $s_i$ + (나머지)뒤집는다.$re..

주니어 백엔드 개발자가 반드시 알아야 할 실무 지식 - 1, 2장

온라인 스터디 개요1주일마다 책의 두 챕터 분량을 읽고, 주 1회 디스코드에서 1시간 정도 공유 및 소통하는 시간을 갖는다. (총원 7)나는 이 스터디를 통해 책을 정리하는 것뿐만 아니라 책에서 간단히 소개되거나 언급된 것들을 적절한 선에서 추가로 공부하려고 한다.기본적으로 챕터마다 2회독을 하려고 한다. 처음 읽을 땐 정독, 두 번째 읽을 땐 빠르게 읽으며 리마인드 + 노션 정리 + 추가 공부응답시간TTFB : 요청을 하고 응답의 첫 번째 바이트가 도착하기까지 걸린 시간DNS 검색, TCP Handshake, SSL handhshake(HTTPS) …병목 탐지에 도움이 될 수 있다. → 느리면 보통 서버 처리나 네트워크가 느림TTLB : 요청을 하고 마지막 바이트가 도착하기까지 걸린 시간처리량RPS (..

[프로젝트 회고] 당일 남는 음식을 싸게 구매할 수 있는 서비스

- 프로젝트명: 꿀띱(KKULDDIP)- 기간: 7.7 - 8.17 (총 6주)- 나의 역할: 백엔드 리더SSAFY 2학기 과정중 공통 프로젝트 기간에 개발한 서비스.원래 공통 프로젝트를 7주 진행하는 걸로 알았는데 이번에는 6주로 진행되었다.1주차와 2주차에는 싸피 강의 듣기, 그라운드 룰 정하기, 컨벤션 정하기, 기획 구체화 등 기본적인 것들을 하느라 사실상 개발 가능한 시간은 4주 남짓이었다. 싸피를 하면서 진행하는 프로젝트들에서 개인적인 목표는 '내가 해보지 않은 것들을 적극적으로 시도하고, 해본 것들은 이해도를 높이자' 이다. 이번 프로젝트는 내 목표를 충족시키기에 아주 좋은 기회였다.'음식을 구매한다' 는 주문, 결제가 포함된 context이다. 평소 유튜브에서 여러 서비스 기업의 컨퍼런스를 ..

사설 클라우드 구축하기 - 2 (WireGuard)

Proxmox web이 외부로 노출되는 것을 막고, 안전하게 내부에서만 작업할 수 있도록 VPN을 뚫어주어야 한다.이를 위해 WireGuard를 이용했다.처음엔 wg-easy를 사용하려 했지만, AllowedIPs를 설정함에 있어서 편의성이 부족하여 WGDashboard로 갈아탔다. 기본적인 가이드라인은 다음 글을 참고했다.https://svrforum.com/svr/43830 wg-easy 환경 설정wget https://raw.githubusercontent.com/WeeJeWel/wg-easy/master/docker-compose.yml위 yaml파일을 다운 받고, 글에 나온대로 WG_HOST, PASSWORD, ... 등을 설정하고 실행했더니 /app/lib/Server.js:311 t..

사설 클라우드 구축하기 - 1

앞으로 다양한 프로젝트를 할건데, AWS 같은 클라우드 서비스를 이용해 24/7 서버를 운영하기엔 금전적으로 큰 부담이 되었다. 그래서 친구 추천으로 저전력으로 운영할 수 있는 N100 미니PC 류를 추천 받았고, 알리 익스프레스에서 6월 세일을 마침 진행했기 때문에 Firebat AK2 plus 16GB/512GB를 구입했다. 서버포럼에 좋은 레퍼런스들이 많아서 참 다행이다.https://svrforum.com/ 서버포럼 - IT, Server, Nas, Linux, ETC..서버포럼은 개인 홈서버 구축, NAS, 헤놀로지, IT 정보, 기타 많은갤러리 등 정보 공유 커뮤니티입니다svrforum.com 장비 구성 / Web GUI 설정KT를 사용하는데 각 방마다 공인 IP가 들어온다. 홈서버를 돌리려면..

Educational Codeforces Round 180 (Rated for Div. 2)

요즘 블로그 스킨 만들다가 오랜만에 코포 대회를 참가했다. https://codeforces.com/contest/2112무수한 패널티.. 그리고 초라한 성적표.. 코드포스 A, B, C번 푸는게 너무 어렵다. math, constructive에 약한 나.. 하다보면 늘겠죠?본문 해석하고 특정 단어를 놓쳐서 많이 틀리는게 좀 있다마지막에 D번을 맞추지 못한게 아쉽 아쉽.. 그린으로 강등 슈웃!일단 코포 블루까지 목표로 잡고 A, B, C, D만 확실하게 이해하려고 한다. A번 - Race밥이 상금이 어디에 떨어지든 항상 앨리스보다 더 빨리 도착할 수 있는 출발 지점을 정할 수 있는지 판별하는 문제.앨리스 위치가 $a$, 임의의 밥의 위치가 $b$라고 하면\( | b - x | \gt | a - x | ..

보호된 글

비밀번호를 입력하세요