목록전체 글 (286)
개발일기
HongLab AI 강의 Part1 Ch1의 0105_Differentiation.ipynb를 공부하면서 정리한 글입니다. 노트북에서는 결과만 소개된 부분(지수함수·로그함수의 도함수)도 직접 유도해 보고, 체인룰은 "왜 곱하는지"까지 이해하는 것을 목표로 했습니다.환경: Anaconda 가상환경 (Python 3.12), VS Code + Jupyter사용 라이브러리: NumPy, SymPy, Matplotlib1. 미분이란: 변화율미분은 변화에 대해 알고 싶을 때 쓰는 수학적 도구입니다. (예: 연봉을 높이고 싶은데 무엇을 어떻게 바꿔야 하지?) 출발점은 두 점 사이의 변화율입니다.노트북의 예제 f(x) = x³ - x에서 x₀ = 0.5, Δx = 1.0으로 계산해 봅니다.def func(x): ..
HongLab AI 강의 Part1 Ch1의 0104_Functions.ipynb를 공부하면서 정리한 글입니다. 함수가 무엇인지, 파이썬으로 수식을 함수로 만들어 그래프로 그리는 방법, 그리고 함수를 변수처럼 다루는 함수 객체를 정리했습니다.환경: Anaconda 가상환경 (Python 3.12), VS Code + Jupyter사용 라이브러리: NumPy, Matplotlib1. 함수의 의미함수는 세 가지 관점에서 볼 수 있습니다.생각을 도와주는 도구: 큰 시스템을 분석할 때 내부를 모르는 블랙박스로 보고, 위에서 아래로(탑다운) 접근할 수 있게 해 줍니다.프로그래밍의 함수 문법: 같은 코드를 반복해서 쓰지 않는 재사용성, 기능을 나누는 모듈화를 가능하게 합니다.입력과 출력의 관계를 수식으로 표현한 것..
HongLab AI 강의 Part1 Ch1의 0103_Numbers.ipynb를 공부하면서 정리한 글입니다. 정수와 실수가 컴퓨터에서 어떻게 다뤄지는지, 그리고 부동소수점 수치 오류가 왜 생기는지를 코드로 확인했습니다.환경: Anaconda 가상환경 (Python 3.12), VS Code + Jupyter사용 라이브러리: NumPy1. 정수 (Integers)..., -3, -2, -1, 0, 1, 2, 3, ... 처럼 소수점이 없는 수입니다.i = 123print(i)print(type(i)) # print(123 + 456) # 연산(operation)출력:123579참고: 파이썬의 int는 범위에 제한이 없습니다. 반면 C, C++, Java 등의 int는 표현할 수 있는 범위가 정해져 ..
HongLab AI 강의 Part1 Ch1의 0102_PythonReview.ipynb를 공부하면서 정리한 글입니다. 코드가 어떻게 동작하는지를 중심으로 적었습니다.환경: Anaconda 가상환경 (Python 3.12), VS Code + Jupyter환경 세팅은 [이전 글]에 정리했습니다.0. 가상환경 명령어 복습conda create -n 가상환경이름 python=3.12 # 만들기conda activate 가상환경이름 # 활성화pip install 패키지이름 # 패키지 설치pip install -r requirements.txt # 필요한 패키지 한 번에 설치conda remove -n 가상환경이름 --all ..
맥북(M1 Pro)에 Anaconda를 설치하고, 가상환경을 만들어 VS Code에서 .ipynb 노트북을 실행하기까지의 과정을 정리했습니다. 중간에 막혔던 부분과 해결 방법도 함께 적었습니다.환경: macOS (Apple Silicon M1 Pro), zsh, VS Code설치 버전: Anaconda 2026.07 (conda 26.5.3), 가상환경 Python 3.121. Anaconda 설치방법 A. 공식 설치 프로그램 (GUI)anaconda.com/download에 접속합니다.Apple Silicon (arm64) 용 .pkg를 받습니다. (Intel 맥이면 Intel 용)설치 프로그램을 실행하고 안내에 따라 진행합니다.칩 종류는 왼쪽 위 Apple 메뉴 → 이 Mac에 관하여에서 확인할 수 ..
선착순 시스템의 트래픽 문제를 개선해보자현재 운영 중인 서비스에는 매일 특정 시간 동안 사용자들이 선착순으로 사건을 가져갈 수 있는 기능이 있다.평상시에는 문제가 없지만 선착순이 시작되는 시간이 되면 상황이 달라진다.많은 사용자가 짧은 시간 동안 동시에 사건 목록을 조회하면서 트래픽이 집중되고, 자연스럽게 조회 속도가 느려지는 문제가 발생했다.실제로 사용자들로부터 “사건 목록이 너무 늦게 나와요.” 라는 문의가 지속적으로 들어왔다. 해당 문의를 받은 후, DB 접속이나 pinpoint 모니터링 툴을 사용하여 확인해보았다. DB Load까지 걸리는 시간 pinpoint 10초 이상으로 치솟는 응답이 매우 많이 관측되었습니다. 특히 심각한 날에는 10초를 초과하는 응답이 대량으로 발생하는 패턴이 확인됩니..
1. 컨테이너가 사용할 수 있는 리소스 사용량을 제한한다. docker run--cpu={CPUcore 수} 컨테이너가 사용할 최대 CPU코어 수 정의 (호스트 머신의 CPU 성능에 상대적) --memory={메모리용량}컨테이너가 사용할 최대 메모리 정의 (b,k,m,g 단위로 정의 가능) 컨테이너 리소스 사용량을 조회하는 도커 명령어 docker stats (컨테이너명/ID)컨테이너의 리소스 사용량 조회docker eventsHOSTOS에서 발생하는 이벤트 로그 조회 docker run -d --name no-limit nginx docker inspect no-limit | grep -e Memory -e Cpus "Memory": 0, "NanoCpus"..
- 동시에 같은 볼륨을 사용하거나, 각각의 컨테이너에 별도의 볼륨을 연결할 수 있다.- 동시에 같은 볼륨을 사용하면 구성이 간단하지만 볼륨에 문제가 생길 경우 대처가 어렵다. - 동시에 같은 볼륨을 사용하면 볼륨의 성능에 부하가 생길 수 있다.- 각각의 컨테이너에 별도의 볼륨을 연결하면 데이터의 싱크를 맞추는 처리를 별도로 해야 합니다. 출처 :) 쉬운도커 데이터 이중화구조 프라이머리-스탠바이 복제 구조의 경우 프라이머리 서버에만 쓰기 작업을 수행하며, 프라이머리의 상태를 스탠바이에 복제합니다. 스탠바이 서버는 읽기 전용으로만 사용되며, 읽기 전용 스탠바이 서버를 여러 대 사용할 수 있다. 프라이머리-프라이머리 복제 구조의 경우 모든 서버에 읽기/쓰기 작업을 수행합니다. 여러 서버에서 동시에 쓰..
