no image
[리뷰] 린 스타트업 (10주년 기념 전면 개정판)
스타트업에 관심이 많다면, '린(LEAN)하다'는 표현을 한번 쯤은 들어본 적이 있을 것이다. '린'하게 일한다는 것이 무엇이고, 또 어떻게 실천할 수 있는 지에 대해서 궁금 하다면, 위 책을 읽는 것을 추천한다. 책에선 아이디어를 시장에 적합한 제품으로 만들기 까지의 과정을 설계 - 검증 - 성장의 단계로 구분해 제시하고 있다. 특히 10년 간 다양한 사례로 검증한 최적의 방법을, '스티브'와 '메리'라는 가상 인물 간의 대화 형태로 다뤄 독자들이 쉽게 이해할 수 있도록 제공하고 있다. '린'하게 일하고 싶은 사업가, PM, 개발 직무 등 스타트업의 구성원 모두에게 추천하고 싶은 책이다. 한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다.
2023.07.23
no image
[리뷰] 팀 개발을 위한 Git, Github 시작하기
팀 단위 개발에 필요한 Git, Github의 개념과 실제 사용법을 다루고 있는 책이다. 찾아보니 저자 분들의 기존 Git 강의를 좀 더 발전 시켜서 책으로 까지 출판한 거 같다. 그래서 아래 링크를 참고하면 책이 대략적으로 어떤 느낌으로 서술돼 있는지 확인할 수 있을 것이다..! 초심자를 위한 Github 협업 튜토리얼 (with 토끼와 거북이) – 블로그 이사갔어요! https://milooy.github.io/ (wordpress.com) [무료] Git과 GitHub 시작하기 - 인프런 | 강의 (inflearn.com) 책은 ‘무조건 쉽게. 단, 제대로’라는 집필 목표에 충실하게 구성돼 있다. 따라서 Git과 Github를 먼저 GUI 환경에서 익히고, 이후 CLI 환경에서 레벨업할 수 있는 다..
2023.06.25
no image
[리뷰] 머신러닝 시스템 설계
비즈니스 문제를 해결하기 위한 머신러닝 시스템 설계 전 과정을 다루고 있는 책이다. 스탠포드 대학의 CS239S 강의를 책으로 재 구성한 것으로, 머신러닝 실무자인 저자의 다양한 노하우가 담겨져 있다. 시스템 설계 시 고민해야 할 점과 발생할 수 있는 문제들을 미리 짚어주기 때문에, 기존의 시스템을 이해할 때도, 새로운 시스템을 구성할 때도 큰 도움이 될 수 있는 책이다. 특히 책 속에 언급되는 예시들이 현실에 가깝고 직관적이라서 좋았다. 책은 우선, 머신러닝 시스템 및 시스템 설계 과정을 개괄적으로 다룬다. 이후엔 시스템 구성 요소들을 차곡 차곡 채워 나간다. 데이터 처리, 모델 개발, 배포 및 서비스 구축, 모니터링, 연속 학습 등의 순으로 설계 과정을 차례로 다루고, 이를 통해 다양한 팁과 문제 해..
2023.05.28
no image
[Python] 백준 1254번 팰린드롬 만들기 풀이
문제 확인하기 1254번: 팰린드롬 만들기 동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한다. 팰린드롬이란 앞에서부터 읽으나 뒤에서부터 읽으나 같게 읽히는 문자열을 말한다. 동호는 www.acmicpc.net 나의 풀이 팰린드롬은 앞으로 읽어도, 거꾸로 읽어도 똑같은 단어다. 문제에선 뒤에 몇 글자를 추가해야 팰린드롬이 되는지 확인하고 싶어한다. 이를 위해선 현재 단어 중 어느 부분까지가 팰린드롬인지 체크해야 한다. 결국 i를 바꿔가며 순 방향, 역 방향 문자열이 동일한지 확인하면 된다. S = input() for i in range(len(S)): if S[i:] == S[i:][::-1]: palindrome = S + S[:i][::-1] print(..
2023.05.26
no image
[Web] Scaling up(수직 확장)과 Scaling out(수평 확장) 알아보기
Scaling up(수직 확장) 더 많은 요청을 처리하기 위해 단일 서버 스펙을 업그레이드한다. 단일 서버에서 모든 데이터를 처리하기 때문에, Data Integrity(데이터 무결성)와 Data Consistency(데이터 정합성)가 중요한 DB 서버 등에서 활용된다. 단일 서버에 부하가 집중되는 특징이 있고, 서버 이상 시 전체 시스템이 동작하지 않는 SPOF(Single Point of Failure) 문제가 발생할 수 있다. 하드웨어에 의존적이기 때문에 업그레이드 시 서버가 필연적으로 다운되고, 필요 부품 비용이 높을 수 있다. 여러 서버를 묶어 클러스터를 구성하거나, 데이터 일관성을 유지하기 위한 노력이 필요 없어 확장 과정이 비교적 단순하다. 물론 그 만큼 유연성은 떨어진다. Scaling o..
2023.05.26
no image
[Docker] Docker 설치 방법 및 기본 명령어 알아보기
설치 방법 설치 curl -sSL get.docker.com | sh 권한 부여 sudo usermod -aG docker $USER sudo service docker restart Docker 관련 명령어 docker run Image(이미지)를 통해 Container(컨테이너) 생성 docker run 명령어 기본 형식 docker run () () () 옵션 -it : 터미널을 활용해 컨테이너 접근 → /bin/sh 실행 시 활용 가능 docker run -it /bin/sh -p : Port Forwarding 옵션 로컬 포트 : 컨테이너 포트의 형식 # 컨테이너의 8080 포트를 로컬의 80 포트를 사용해서 접근 docker run -p 80:8080 -d : 컨테이너를 백그라운드에서 실행 →..
2023.05.16
no image
Docker 환경에서 ImportError: libGL.so.1: cannot open shared object file: No such file or directory 발생 시 해결 방법
문제 상황 opencv를 포함한 Docker 이미지를 만들 때 cv2의 의존 패키지가 없을 때 발생한다. 해결 방법 의존 패키지를 추가로 설치하거나 opencv-python-headless과 같이 애초에 서버용으로 제작된 라이브러리를 활용하자. opencv-python-headless 사용하기 RUN pip3 install opencv-python-headless 의존 패키지 직접 설치하기 RUN apt-get update && apt-get install libgl1-mesa-glx -y RUN apt-get update && apt-get install ffmpeg libsm6 libxext6 -y 참고 ImportError: libGL.so.1: cannot open shared object fil..
2023.05.13
no image
Poetry의 does not contain any element 오류 해결하기
문제 상황 Docker에서 poetry install 하는 과정에서 doest not contain any element 오류가 발생했다. packages = [] 가 설정돼 있어, 상위 디렉토리의 의존성까지 확인하는 것이 원인이라고 한다. packages = [{include = "style_transfer"}] 해결 방법 1. poetry install에 --no-root 옵션을 준다. poetry install --no-root 2. packages = [] 라인 자체를 삭제한다. packages = [{include = "style_transfer"}] 참고 Poetry install on an existing project Error "does not contain any element" I a..
2023.05.12
no image
[Network] Hub(허브, L1), Switch(스위치, L2), Router(라우터, L3), 공유기(L4) 차이점 알아보기
허브(더미 허브) : L1 장비 L1(Physical Layer)에서 동작하며 멀티 포트를 통해 여러 컴퓨터 및 네트워크 장비들을 연결해주는 장치이다. 신호를 증폭해주는 리피터이기도 하다. 허브는 L1 장비라서 통신 시 목적지로서 활용할 수 있는 MAC, IP 정보가 없다. 따라서 통신 시 모든 장비에게 데이터를 전송하게 된다. 결국 허브 내 장비가 많아지면 그 만큼 대역폭에서 손해를 보게 되는 구조이다. 스위치 : L2 장비 L2(Data-Link Layer)에서 동작하며 Frames(프레임)의 MAC 주소를 참고해 해당하는 장비에 데이터를 전달해주는 장치이다. 스위치는 해당 네트워크의 MAC 주소를 테이블로 저장하고 있는데, 입력된 프레임의 MAC 주소가 테이블에 없을 경우는 허브와 동일하게 모든 장..
2023.05.08
no image
Classification Metrics(분류 모델 지표 ) 알아보기 : TPR, FPR과 ROC Curve 사이 관계 및 AUC
TPR, FPR → Positive 판단에 따른 성공, 실패 여부 True Positive Ratio(=Recall) : $\frac{TP}{TP+FN}$ 실제 Positive(양성)을 얼마나 정확히 분류 했는지 False Positive Ratio(=Fallout) : $\frac{FP}{TN + FP}$시 실제 Negative(음성) 중 잘못 분류한 비율 TPR, FPR 모두 Positive(양성) 판단에 따른 성공, 실패 여부를 다룸 이때 성공-실패 여부는 Positive(양성) 판단의 기준이 될 Threshold를 어떻게 설정 하느냐에 따라 다른 결과가 나오게 됨 ROC와 AUC? ROC : Positive 예측 시 Threshold 별 양상을 확인하기 위해, FPR을 x 축으로, TPR을 y 축..
2023.04.28
no image
[Web] Web Server(웹 서버)와 CGI, Web Application Server(WAS, 앱 서버) 알아보기
Web Server(웹 서버) 클라이언트로부터 HTTP 요청을 받아 Static pages(정적 페이지)를 제공하거나, Dynamic Pages(동적 페이지) 요청을 WAS에 전달 하는 서버 및 프로그램을 의미한다. 서버가 설치된 PC 자체를 가리키는 말이기도 하다. 예시) Apache, Nginx Common Gateway Interface(CGI) Web Server(웹 서버)와 Application Program 사이 정보를 주고 받는 프로토콜이다. CGI를 통해 웹 서버가 Dynamic Pages(동적 페이지) 구성을 할 수 있다. 프로토콜이기 때문에 어떤 언어로도 작성될 수 있다. CGI는 클라이언트 요청을 처리 하기 위해 매번 Process(프로세스)를 새로 생성한다. 따라서 많은 요청이 발생..
2023.04.28
no image
[Web] Static pages(정적 페이지)와 Dynamic pages(동적 페이지) 알아보기
Static pages(정적 페이지) html, css, javascript 등으로 미리 작성된 파일 등을 서버에 저장해 놓고, 매 클라이언트 요청마다 동일한 페이지를 반환하는 경우다. 동적인 요소가 없기 때문에 별도의 DB 없이 Web Server(웹 서버)만으로 처리할 수 있는 영역이다. 미리 저장된 파일을 불러오기 때문에 로딩 자체가 빠르고, 공격적인 캐시 설정을 통해 이를 극대화할 수 있다는 장점이 있다. 다만 페이지 내용 변경 시 서버에 업로드해야 하는 과정이 필요한 만큼, 수정이 불편한 단점이 있다. Dynamic pages(동적 페이지) 클라이언트 요청에 따라 데이터를 가공해 맞춤형 결과를 반환하는 경우다. 동적 페이지를 위해선 Web Application Server(WAS)와 DB가 필요..
2023.04.26