profile
나만 읽을 수 있는 블로그

AWS Elastic Beanstalk CPU 사용률 모니터링하기

최근 회사 서버가 자주 맛탱이가 갔다. 이슈를 파악해서 해결도 했지만, 팀장님께서 CPU 사용률 모니터링 하면서 70% 이상의 사용률이 감지가 되면 슬랙이나 문자로 오도록 하는 기능을 구현해보라 하셨다. AWS SNS 우선 AWS SNS라는, AWS에서 제공하는 푸시 알림 서비스를 활용하기로 했다. 이메일, SMS, HTTP, 람다 등을 알림 수단으로 ...

2022년 12월 16일
·
0개의 댓글
·

MySQL 나빠요

MySQL 덤프 떠서 import 하기 테스트 서버에 연동된 데이터베이스를 덤프 떠서 각자 로컬 디비로 옮긴 다음, 로컬 디비로 연동해서 작업하자는 이야기가 나왔다. 우리는 Nest.js에 ORM으로 Prisma를 사용한다. prisma를 사용하면 스키마가 변경될 때마다 migration 해주는 작업을 거치는데, 이게 여간 귀찮은 일이 아니더라. (내가...

2022년 12월 5일
·
0개의 댓글
·

AWS Lambda와 Serverless

개요 리포팅 자동화 업무를 진행하게 되었다. 업무의 전체적인 개요는, 어떤 창에(누군가 만들어놓은) 엑셀 파일을 업로드하면 특정 구글 스프레드시트에 반영이 되고, 해당 스프레드시트를 타겟으로 하는 피봇 테이블을 캡쳐해서 슬랙 창으로 자동으로 업로드 되도록 하는 것이다. 엑셀파일을 업로드하고, 업로드된 파일의 내용을 객체로 빼내는 것까지는 팀장님이 작업을 해...

2022년 12월 1일
·
0개의 댓글
·

[Nest.js] Test

Jest testing framework로 Jest가 기본 제공된다. mocking과 spying을 가능하게 하고, test-runner로써의 기능을 제공한다. built-in Test class 내장 Test 클래스가 존재한다. Test 클래스는 전에 Nest runtime을 mock하는 application execution context를 제공한다....

2022년 11월 1일
·
0개의 댓글
·

[Nestjs] Authentication (passport)

Authentication 인증 Authentication은 대부분의 application에 필수적이다. Authentication을 처리하는 데에는 다양한 접근법과 전략이 있다. appliction의 요구사항에 따라 접근법을 선택하게 된다. 이번 글에서는 다양한 요구사항에 적용가능한 몇몇 접근법을 소개하려 한다. Passport는 많은 producti...

2022년 10월 31일
·
0개의 댓글
·

[Nest.js] 공식문서 정리 (Overview)

Nest.js와 Spring Nest.js는 스프링과 굉장히 유사하다. 사실 타입스크립트 필드의 스프링이라고 생각이 든다. Nest.js 개발자들이 실제로 스프링과 같은 구조를 지향하며 개발했다는 인터뷰가 있다는데, 나는 찾아보지 못했다. Controller, Service 등의 클래스와 DI, IoC의 개념 또한 매우 유사하다. 스프링의 구조를 그대로 ...

2022년 10월 25일
·
0개의 댓글
·

[Javascript] 이벤트 루프

오랜만... 오늘은 자바스크립트의 동작 원리를 파헤치기 위해 이벤트 루프에 대해 작성해보려고 한다. 동기 / 비동기 우선 자바스크립트는 싱글 스레드 기반의 언어이다. 스레드는 한 번에 하나의 요청에 대한 처리밖에 할 수 없다. 즉 동기적으로 동작한다. 그런데 우리가 Node.js를 공부할 때, 'Node.js는 비동기적 어쩌구 저쩌구...'하는 문구를 항...

2022년 10월 20일
·
0개의 댓글
·

[프로그래머스] 영어 끝말잇기

https://school.programmers.co.kr/learn/courses/30/lessons/12981 어렵지 않은 간단한 문제이다. 우리가 평소 아는 끝말잇기 규칙에 위배되는 사람을 찾는 그런 문제이다. 내 풀이에 비해 굉장히 깔끔한 코드가 예시답안으로 작성되어 있어 소개하려 한다. 우선 내 풀이의 경우 deque 라이브러리를 활용해 큐 ...

2022년 10월 4일
·
0개의 댓글
·

[프로그래머스] 단어 변환

https://school.programmers.co.kr/learn/courses/30/lessons/43163 우선 내가 작성한 코드와 그에 대한 테스트 점수는 아래와 같다. bfs 방식으로 풀이를 했는데, 주어진 단어를 모두 방문해야했기 때문이다. 보통은 왜 80점을 받는지 납득할 수 없는 경우가 많은데, 이번엔 내가 왜 80점을 받는 지 안다....

2022년 10월 1일
·
0개의 댓글
·

[프로그래머스] 피보나치 수

https://school.programmers.co.kr/learn/courses/30/lessons/12945 피보나치 수를 구하는 간단한 문제인데, 내가 알던 풀이 외에 좋은 풀이가 있어 기록하려 한다. 물론 엄청 기발하다거나 다른 풀이는 아니고 그냥 .. ㅋㅋ

2022년 10월 1일
·
0개의 댓글
·

[프로그래머스] JadenCase 문자열 만들기 - title, capitalize

https://school.programmers.co.kr/learn/courses/30/lessons/12951 문제는 너무 간단하다. 처음에 문제를 풀 때는 각 단어별로 첫번째 문자는 대문자로, 그 뒤에 나머지 문자열은 하나하나 소문자로 바꿔주는 코드를 작성했다. islower(), isupper(), lower(), upper() 등의 함수를 사용했...

2022년 9월 30일
·
0개의 댓글
·

[프로그래머스] - 키패드 누르기

https://school.programmers.co.kr/learn/courses/30/lessons/67256 간단하게 문제를 요약하자면, (1, 4, 7)은 왼손으로 누르고 (3, 6, 9)는 오른손으로 누르고 (2, 5, 8, 0)은 가까이 있는 손으로 누르되 거리가 같으면 자기의 주손으로 누르는 것이다. 우선 내 풀이 아이디어는 아래와 같다. ...

2022년 9월 30일
·
0개의 댓글
·

[프로그래머스] 소수 찾기 - itertools permutations

https://school.programmers.co.kr/learn/courses/30/lessons/42839 문제는 위와 같고, 아이디어가 어렵다기 보다는 각각의 찢어진 종이 조각으로 만들 수 있는 숫자를 만드는 과정에서 구현이 까다로웠다. num 배열이 만들어지는 과정을 주목해서 살펴두자.

2022년 9월 29일
·
0개의 댓글
·

[프로그래머스] 옹알이 - replace

https://school.programmers.co.kr/learn/courses/30/lessons/120956 문제의 테스트케이스가 이상한건가...? 우선 아래 문제설명과 테스트 케이스를 살펴 보자. 아이는 현재 옹알이 중이라 {"aya", "ye", "ma", "woo"} 4가지 발음과 그 조합으로 밖에 말할 수 없다. 첫 번째 입력 케이스는 ...

2022년 9월 29일
·
0개의 댓글
·

[프로그래머스] 여행경로 DFS

https://school.programmers.co.kr/learn/courses/30/lessons/43164 출발지와 도착지가 적힌 tickets 리스트가 주어지고, ICN으로부터의 경로를 출력하면 되는 문제이다. 이 때 경로가 2가지 이상이라면, 알파벳 순으로 가는 경로를 출력하면 된다. 우선 나는 출발지 별로 도착지들을 알파벳의 역순으로 리스트...

2022년 9월 29일
·
0개의 댓글
·

[프로그래머스] 네트워크 DFS/BFS

https://school.programmers.co.kr/learn/courses/30/lessons/43162 해당 문제는 뭉텅이의 개수를 세는 것이라고 이해하면 된다. 위의 그림에서 보면 1번과 2번이 연결되어 있기 때문에 한 뭉텅이로 보고, 3번을 독립적인 뭉텅이로 보아, 총 2개의 뭉텅이가 있다고 볼 수 있다. 뭉텅이 관련 문제는, 각각의 노드...

2022년 9월 28일
·
0개의 댓글
·

산업기능요원 면접 후기 - stateful 서버, 좋은 개발자가 될 수 있는 환경

오늘은 몇 시간 전 다녀온 면접에 대해서 이야기 해보려 한다. 생애 3번째로 보는 면접이었는데 굉장히 굉장히 좋은 기억이고, 기록해두고 싶은 얘기가 있어서 적어보려 한다. 그 간의 면접 이번에 본 면접을 제외하고 면접을 총 2번 봤다. 첫 번째 면접은 약 1년 반 전에, 2021년 3월 초쯤 여의도에 있는 한 회사였다. 당시 막 2학년을 마친 나는 CS ...

2022년 9월 28일
·
0개의 댓글
·

[데이터베이스] 핵심 내용 정리

Primary Key 위와 같은 데이터베이스 테이블을 가정해보자. > Super Key 슈퍼키는 각 row를 유일하게 식별할 수 있는 하나 또는 그 이상의 속성들의 집합이다. 즉, "유일성"을 만족하면 슈퍼키가 될 수 있다. (학번) (학번, 이름) (학번, 이름, 학과) (주민등록번호) (주민등록번호, 학과, 성별) ... > Candidate K...

2022년 9월 23일
·
0개의 댓글
·

[네트워크] HTTP

HTTP HTTP는 HyperText Transfer Protocol의 약자로 서버-클라이언트 모델을 따르면서 request/response 구조로 웹 상에서 정보를 주고받을 수 있는 프로토콜이다. 이는 TCP/IP 기반으로 작동하며, Connectionless와 Stateless 2가지 특성이 있다. (HTTP3은 UDP를 기반으로 작동한다고 알려짐.) ...

2022년 9월 21일
·
0개의 댓글
·

[네트워크] TCP, UDP

3-way handshake 3-way handshake는 TCP/IP 프로토콜로 통신하기 전, 정확한 정보 전송을 위해 상대방 컴퓨터와 연결을 하는 과정이다. (TCP 연결 초기화) 클라이언트가 서버에게 접속을 요청하는 SYN 패킷을 보내면, 서버는 요청을 수학하는 ACK를 포함하여 SYN+ACK 패킷을 클라이언트에게 보낸다. 클라이언트는 이를 수신한 ...

2022년 9월 21일
·
0개의 댓글
·