일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 카카오
- 프로그래머스
- BFS
- 셀러리
- 누적합
- 이분탐색
- 몽고 인덱스
- 디버깅
- 백준
- 크롤링
- piplining
- AWS
- JPA
- 베타적락
- dau 3만명
- 쿠키
- 완전탐색
- spring event
- 알람시스템
- langgraph
- 구현
- 관측가능성
- ipo 매매자동화
- ai agent
- 추천 검색 기능
- 아키텍쳐 개선
- next-stock
- 결제서비스
- docker
- gRPC
- Today
- Total
목록분류 전체보기 (190)
코딩관계론

[코드 계약의 목적] 일관성과 명확성: 코드 계약을 통해 코드의 의도와 사용 방법을 명확하게 정의할 수 있습니다. 이는 코드를 작성한 개발자뿐만 아니라 다른 사람들에게도 코드의 의미를 명확히 전달하여 일관성 있는 개발을 도와줍니다. 문서화와 이해도: 코드 계약은 코드에 대한 문서화 역할을 수행합니다. 이를 통해 코드를 이해하기 쉽고, 코드의 목적과 기능을 파악할 수 있습니다. 코드 계약을 통해 다른 개발자들이 코드를 빠르게 이해하고 활용할 수 있습니다. 협업과 유지 보수: 코드 계약은 다른 개발자와의 협업에서 필요한 코드 사용법을 명확하게 전달합니다. 이를 통해 다른 개발자들은 코드를 쉽게 활용하고 유지 보수할 수 있습니다. 코드 계약은 프로젝트의 지속적인 개발과 유지 관리를 지원합니다. 버그와 오류 예..

[추상화를 하는 이유] 추상화는 코드 품질의 핵심 4요소를 달성하는 데 도움을 줍니다. 가독성: 추상화는 코드베이스에 있는 모든 세부 사항을 이해하는 것을 불가능하게 만들지만, 몇 가지 높은 수준의 추상화를 이해하고 사용하는 것은 비교적 쉽습니다. 따라서 코드의 가독성이 크게 향상됩니다. 모듈화: 추상화 계층을 사용하면 하위 문제에 대한 해결책을 깔끔하게 분리하고 구현 세부 사항을 외부로 노출하지 않도록 할 수 있습니다. 이를 통해 다른 계층이나 코드의 일부에 영향을 미치지 않고도 계층 내에서만 구현을 변경하는 것이 매우 쉬워집니다. 재사용성 및 일반화성: 추상화 계층을 통해 하위 문제에 대한 해결책이 간결하게 제시되면 해당 해결책을 재사용하기 쉬워집니다. 또한, 문제를 적절하게 추상화하여 하위 문제로 ..

소개 이 포스트에서는 이메일의 첨부 파일 이름이 'noname' 으로 표시되는 문제를 다룹니다. 구체적으로, 현대 측 SMTP 서버를 사용하여 이메일을 발신하던 중, 한글 파일을 첨부하면 서버에서 파일 이름을 'noname'으로 변경하여 수신자에게 전달하는 문제가 발생했습니다. 문제 원인 문제의 원인은 한글 파일을 보낼 때 인코딩과 디코딩 과정이 제대로 이루어지지 않아 발생한 것으로 확인되었습니다. 해당 문제를 해결하기 위해서는 올바른 인코딩 방식을 사용하여 파일 이름을 설정해야 합니다. 먼저 문제를 제대로 이해하기 위해 인코딩의 개념과 한글이 왜 ASCII에서 인코딩이 될 수 없는지에 대해서 설명하겠습니다. 인코딩이란 무엇인가? 인코딩은 컴퓨터에서 문자나 기호를 표현하는 방법입니다. 컴퓨터는 전기 신호..

문제 이해 과제를 끝내는 순서대로 배열에 담아 반환하는 문제입니다. 여러 과제가 주어지는데, 가장 빨리 시작해야 하는 과제부터 선택하여 수행하고, 새로운 과제를 시작할 시간이 되면 기존에 진행 중이던 과제는 멈춥니다. 그리고 현재 수행 중인 과제가 다음 과제의 시작 시간보다 빠르게 끝나면 멈추었던 과제를 이어서 수행합니다. 멈추어 둔 과제를 실행하는 순서는 최신에 멈춘 과제부터 실행합니다. 문제 해결 방법 설명 1. 선택한 과제를 다음 과제를 시작하기 전까지 끝낼 수 있을까? 먼저 초로 단위를 통일했습니다. 해당 초를 정렬해줌으로써 수행하고 있는 과제와 다음에 수행해야하는 과제의 시간을 알아낼 수 있었습니다. 현재 과제의 시작 시간과 과제(A)를 끝내기까지 요구되는 시간(B)과 다음 시작 시간(C)을 알..

[문제 설명] A나라에서 발사한 미사일의 구간이 (s, e)로 주어지고, B나라는 최소한의 요격 미사일로 A가 날린 미사일을 요격해야 한다. B가 사용하는 최소한의 미사일을 개수를 찾는 문제다. [해결 방법] 저는 이 문제를 풀기위해 그리디 알고리즘을 사용했습니다. 그리디 알고리즘을 사용한 이유는 다음과 같습니다. 우리가 원하는 답은 최소한의 요격 미사일 개수 입니다. A가 날린 미사일의 위치를 모두 알 수 있으니, 우리는 미사일의 공통된 구간을 찾아서 요격 미사일을 날려주면 원하는 답을 찾을 수 있습니다. 코드 # Copyright 2023 bae # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use t..

장고 채널이란 장고 채널(Channel)은 Django 프레임워크의 기능을 확장하여 웹 소켓 통신과 같은 실시간 기능을 제공하는 패키지입니다. 채널은 Django의 기본 요소들과 유사한 구조를 가지며, Django 프레임워크와 함께 사용되어 Django 애플리케이션의 구성 요소로 작동합니다. 장고 채널은 ASGI(Asynchronous Server Gateway Interface) 프로토콜을 사용하여 웹 소켓 및 HTTP 기반의 프로토콜을 처리할 수 있습니다. ASGI는 WSGI(Web Server Gateway Interface)와 유사한 역할을 하며, 비동기적인 웹 애플리케이션 개발을 위한 표준 인터페이스입니다. 채널은 크게 두 가지 요소로 구성됩니다. 첫 번째는 채널 라우터(Channel Route..

소개안녕하세요! 이번에는 Celery를 사용한 비동기 프로그래밍에 대해 알아보겠습니다. 최근에 업데이트한 프로그램에서 Celery를 도입하여 작업을 비동기적으로 처리하게 되었는데요, 이를 통해 사용자가 프로그램을 커스텀하게 구성할 수 있게 되었습니다. 우선, 비동기 프로그래밍이란 CPU-bound 작업과 I/O-bound 작업을 구분하여 처리하는 방식을 말합니다. 이를 통해 시스템의 성능을 향상시킬 수 있습니다. 이번에는 이러한 비동기 프로그래밍을 구현할 때 사용한 Celery에 대해 자세히 알아보겠습니다. Celery는 Python 기반의 Task Queue 라이브러리 중 하나로, 비동기적으로 작업을 처리할 수 있습니다. 이를 통해 CPU-bound 작업과 I/O-bound 작업을 효율적으로 처리할 수..

비동기 처리의 개념과 필요성비동기 처리는 순차적으로 처리하는 것이 아니라, 요청이 발생한 순서와 상관 없이 결과를 반환하는 방식을 말합니다. 예를 들어, 웹 어플리케이션에서 사용자의 요청에 대한 처리가 비동기적으로 이루어지면, 서버는 해당 요청을 받은 후 다른 작업을 수행하다가 해당 요청이 완료되면 그 결과를 반환하는 방식으로 동작합니다. 이를 통해 서버의 자원을 효율적으로 사용할 수 있고, 사용자에게 더 빠른 응답이 가능해집니다. 비동기 처리의 필요성은 크게 두 가지로 볼 수 있습니다. 첫째, 대규모 트래픽이 발생하는 웹 서비스에서는 많은 요청이 동시에 발생할 수 있습니다. 이 경우 요청을 순차적으로 처리하면 응답 시간이 길어질 수 있습니다. 따라서 비동기 처리를 통해 대량의 요청을 빠르게 처리할 수 ..

OAuth 2.0의 개념과 목적 OAuth 2.0은 웹이나 모바일 애플리케이션 등에서 서드 파티 애플리케이션(Third-Party Application)이 사용자의 인증 정보를 안전하게 사용할 수 있도록 하는 인증 및 권한 부여 프레임워크입니다. OAuth 2.0의 주요 목적은 사용자가 서드 파티 애플리케이션에게 자신의 인증 정보(아이디, 비밀번호 등)를 제공하지 않고도, 서드 파티 애플리케이션에서 사용자의 개인 정보(예: 이메일, 친구 목록 등)를 안전하게 이용할 수 있도록 하는 것입니다. 예를들면 B 회사가 Google Calendar API에 접근하기 위해 사용자의 Google ID와 비밀번호를 요구하지 않고도, Google에서 로그인을 처리하고, 사용자가 Google Calendar API에 대한..

문제 이해하기 판매원 A가 칫솔을 판매하면 판매한 금액의 10프로가 판매원 A의 상관인 B에게 분배되고, B의 상관인 C에게 분배되는 형태의 판매망을 운영하고 있습니다. 이 때 조직 내 누가 얼만큼의 이득을 가져갔는지 알고자하는 문제였습니다. 문제 해결 방법 설명하기 조직 내 누가 얼마만큼의 이득을 가져갔는지를 파악하기 위해서는 각 판매원이 판매한 금액을 추적해야 합니다. 예를 들어, 판매원 A가 100만원짜리 칫솔을 판매하면, A는 100만원의 10%인 10만원을 B에게, B는 10만원의 10%인 1만원을 C에게 주어야 합니다. 따라서 이 판매망에서 각 판매원이 얼마만큼의 이득을 가져가는지를 계산하려면, 각 판매원이 판매한 금액을 추적하고, 이를 기반으로 각 판매원이 상위 조직원에게 주는 이득을 계산하..