@gyuwseong
Backend developer based in Seoul.

스프링 컨테이너와 빈

June 23, 2024

스프링 컨테이너 스프링 컨테이너는 스프링에서 객체를 관리, 제공하는 역할을 한다. 스프링 컨테이너 생성 과정 는 스프링 컨테이너 역할을 하며, 스프링 프레임워크의 인터페이스 중 하나이다. 는 의 구현체인 클래스인데, 이름 그대로 기반의 를 토대로 스프링 애플리케이션 컨텍스트를 구성한다는 의미이다. 위의 코드는 컨테이너가 파라미터 없이 생성된 상태…


python round() 와 반올림

June 18, 2024

문제 링크 문제에 설명된 절사평균이라는 개념을 잘 읽고 적용하면 풀릴 것 같은 문제지만, 파이썬에서 반올림에 흔히 사용되는 함수의 미묘한 특성을 알지 못하면 풀기 힘든 문제이다. round() 보통 우리가 보편적으로 알고 있는 반올림 방식은 숫자 5 이상부터 올리고, 4 이하부터 내리는 방식인데, 파이썬의 반올림은 가까운 짝수 쪽으로 반올림 하는 방식을…


input() vs sys.stdin.readline()

June 11, 2024

백준 사이트에서 알고리즘 문제를 풀 때는 다른 알고리즘 풀이 사이트와 다르게 입출력을 명시해 줘야 한다. 가장 기본적인 입력 함수는 이고, 좀 더 빠른 입력을 위해 사용하는 함수는 이다. 두 함수의 속도 차이를 크게 느낄 수 있는 문제 하나를 예시로 들자면 단어 정렬 문제 링크 단순 문자열 정렬 유형으로, 어렵지 않은 난이도의 문제이다.   처음 풀이…


비동기 프로그래밍

June 05, 2024

동기 처리와 비동기 처리 실행 컨텍스트 함수가 실행되려면 에서 생성된 함수 실행 컨텍스트가 실행 컨텍스트 스택에 푸시되어야 한다. 즉, 실행 컨텍스트 스택에 함수 실행 컨텍스트가 푸시되는 것은 바로 함수 실행의 시작을 의미한다. 함수가 호출된 순서대로 순차적으로 실행되는 이유는 함수가 호출된 순서대로 함수 실행 컨텍스트가 실행 컨텍스트 스택에 푸시되기…


Custom repository 적용하기 (feat. Sequelize, TypeORM)

June 04, 2024

개인 코드 스타일을 드러낼 작은 프로젝트를 진행하면서, 기존에 사용했던 Sequelize 대신 Typeorm 을 적용해 보고 있다. 아직 시작한 지 얼마 되지 않아서 적응 중이고, 딥한 레벨의 로직을 구현하지 않았기 때문에 아주 큰 차이점을 느끼진 못했지만, ORM 에서 레이어 분리를 위해 자주 사용하는 repository 를 구현할 때의 차이점을 기록해…


최소비용 신장 트리 (Minimum Spanning Tree)

June 01, 2024

최소비용 신장 트리 (MST, Minimum Spanning Tree) 무방향 (양수) 가중치 그래프면서 엣지들에 의해 그래프의 모든 정점들이 서로 연결되면서 가중치의 합이 최소가 되는 트리 사이클(cycle) 이 없는 연결된(connected) 무방향 그래프를 트리라고 한다. 우리가 보통 말하는 트리(ex 이진트리) 는 rooted tree 라고 부른…


블로그 옮기기

May 31, 2024

why 몇 년 전부터 계속 블로그를 옮기고 싶었는데, 몇 가지 이유가 있었다. 기존에 사용하던 티스토리는 확장성에 제약이 많았고, 마크다운 형식이 편한 나에게 묘하게 호환되지 않는 티스토리 마크다운 방식이 불편했다. 나는 단순한 걸 좋아하고 뭐든지 파편화되어 있는 걸 싫어하는데, 공부할 때는 접근성이 편한 노션으로 공부를 하고, 코드를 작성할 때는 ide…


종속성 문제 해결하기

May 31, 2024

이번에 블로그를 옮기면서 gatsby 를 처음 사용해 봤는데, 큰 문제는 아니었어도 배포 과정에서 겪은 종속성 문제를 기록해보면 좋을 것 같단 생각이 들었다. 문제는 로컬 환경에서 잘 실행되는걸 확인한 프로젝트를 GitHub 에 푸시한 후, 정적 사이트를 호스팅할 수 있는 GitHub Pages 로 배포하는 과정에서 발생했다. gh-pages 는 프로젝트…


leetcode 15. 3Sum

May 18, 2024

문제 링크 배열을 입력받아 합으로 0을 만들 수 있는 3개의 요소를 배열로 감싸서 출력하는 문제이다. 가장 처음 든 풀이법은 역시 브루트포스였지만 시간복잡도 때문에 타임아웃이 발생할 것 같아서 다른 방법으로 접근하기로 했고, 2Sum 풀 때처럼 투 포인터 방식으로 풀면 되겠다는 판단이 들었다. 첫번째 풀이 인풋 배열을 정렬시킨 후, 첫 수를 고정시키고 …


작고 귀여운 크롬 확장 프로그램 만들기

April 17, 2024

예전부터 만들어야지 생각하면서 계속 미뤄뒀던.. 확장 프로그램을 드디어 만들어서 간략하게 개발 과정을 작성해 보는 포스팅이다. 개발 이유 이 조그만걸 왜 만들었냐면... 2019년부터 몇년간 잘 쓰던 확장 프로그램이 있었는데, 기능이 그렇게 많지 않았지만 나에게 딱 필요한 기능만 있었기에 아주 잘 쓰고 있었다. 그 확장 프로그램의 기능은 프로그램 아이콘을…