본문 바로가기

전체 글

Posts/Python Python | Django Interview Q&A List 간단히 내용을 요약했기에 부족한 부분은 따로 찾아서 학습할 예정이며 지속적으로 업데이트 할 예정입니다. 보시는 분들도 참고해주시면 감사하겠습니다. Python GIL이 무엇이고, 왜 성능 문제가 발생하는가? GIL을 알기 전에 파이썬에서 멀티쓰레드를 먼저 이해해야합니다. import logging import random import threading import time if __name__ == "__main__": format = "%(asctime)s: %(message)s" logging.basicConfig(format=format, level=logging.INFO, datefmt="%H:%M:%S") def working(name): logging.info("Thread %s: starti.. 2021. 11. 10. 00:11
Posts/CS 백엔드 개발자 CS 개념 모음 Dev-Tech Study Repository 좋은 개발자로 성장하기 위해 부족한 기초 개념을 정리하였습니다. 지속적으로 추가됩니다. 프로세스 메모리상 실행중인 프로그램을 말하며 디스크로부터 메모리에 적재되 CPU 할당을 받을 수 있는 것을 말합니다. 프로세스는 최소 하나의 스레드를 보유하며 별도의 주소공간을 독립적으로 할당받습니다. 스레드 프로세스 내에 하나의 실행 단위를 말합니다. 프로세스내에서 스레드는 자원을 공유할 수 있으며 하나의 프로세스에서 다수의 스레드를 실행 단위로 구분한 것을 멀티스레드라 말합니다. 멀티 프로세스로 처리 가능한걸 멀티 스레드로 하는 이유? 멀티스레드로 작업시 멀티 프로세스보다 공유하는 통신 비용이 적고 프로세스 생성 후 자원을 할당하는 시스템 콜이 감소할 수 있기에 더 효.. 2021. 11. 8. 00:29
Posts/Python 파이썬을 이용한 클린 코드를 위한 TDD - 3장 단위 테스트 적용 Chapter 3. 단위테스트를 이용한 간단한 홈페이지 테스트 적용 TDD 학습 겸 정리를 위한 내용입니다. 1. 단위 테스트와 기능 테스트 1-1. 단위 테스트 프로그래머 관점에서 그 내부를 테스트하는 것 1-2. 기능 테스트 사용자 관점에서 애플리케이션 외부를 테스트 하는것 1-3. 테스트 작업 순서 기능 테스트를 작성해 사용자 관점에서 새 기능을 정의 기능 테스트를 실패하고 나면 테스트를 어떻게 통과해야할지 방법을 고민 이때 하나 이상의 단위 테스트를 적용하여 어떻게 코드가 동작해야 하는지 정의 단위 테스트가 실패하면 단위 테스트를 통과할 수 있을 정도의 최소한 코드 수정 이때 기능 테스트가 완전해질 때까지 과정 2와 3을 반복 기능 테스트를 실행하여 통과하는지 확인 통과하지 않을시 다시 단위 테스.. 2021. 11. 8. 00:19
Posts/Python 파이썬을 이용한 클린 코드를 위한 TDD - 2장 unittest 모듈 Chapter 2. unittest 모듈 기능 확장 TDD 학습 겸 정리를 위한 내용입니다. 1. 기능 테스트를 이용한 최소 기능의 애플리케이션 설계 챕터 1에서 셀레늄을 이용한 테스트는 실제 브라우저에 실행해 애플리케이션이 어떻게 동작하게 되는지 사용자 관점에서 테스트를 진행하였습니다. 이런 테스트를 기능 테스트라고 부르며 사용자 스토리라는 개념으로 사용자가 어떤 행동을 했을때 애플리케이션이 어떻게 동작해야하는지 기대하며 확인하는 방식입니다. 1-1. 기능 테스트 스토리라인 기능테스트는 스토리를 가지고 있어야 하기에 주석으로 정의를 기록합니다. 애플리케이션 요구사항과 특징을 기능 테스트로만으로도 확인이 가능해야합니다. from selenium import webdriver from selenium.we.. 2021. 10. 30. 10:16
Posts/Python 파이썬을 이용한 클린 코드를 위한 TDD - 1장 기능테스트를 이용한 장고 프로젝트 설정 Chapter 1. 기능 테스트를 이용한 Django 프로젝트 TDD 학습 겸 정리를 위한 내용입니다. 1. 테스트가 없다면 아무것도 하지 마라 TDD의 접근법은 언제나 같습니다. 테스트를 작성한 후 실행하고 예상 시나리오대로 실패하는지 확인하는 작업의 연속입니다. 단계를 작게 나누어 조금씩 진행해 나갑니다. 1-1. 첫번째 기능테스트 프로젝트에서 selenium webdriver를 사용하기 위해 ChromeDriver를 사전에 설치합니다. 이후 PATH(/usr/local/bin) 경로로 ChromeDriver 파일을 이동시킵니다. from selenium import webdriver from selenium.webdriver.chrome.service import Service # 처음엔 Chrom.. 2021. 10. 30. 00:58
Posts/Django Legacy DB 장고에 연동 후 Table에 Foreign Key 설정시 Migrate로 관리하는 법 기존 데이터베이스를 django로 운영하고자 할 때 통합하기 위해선 inspectdb 를 이용할 수 있습니다. inspectdb라는 유틸리티를 통해 생성된 모델들을 해당 프로젝트 setting.py에 app 패키지에 추가시키고 managed 옵션을 주어 관리하게 됩니다. 라이프사이클 관리를 허용할 때는 True, False이며 모든 앱들의 수정이 완료되면 migrate 명령을 통해 django 테이블 추가 및 통합을 이루게 됩니다. 이렇게 초기에 통합 환경을 만들고 운영하던 중 특정 모델의 추가적로 컬럼(FK)을 추가해야하는 상황에서 발생한 문제와 해결 과정을 정리해보고자 합니다. 1. 문제 발생 기존 레거시 mysql 데이터베이스에 inspectdb 이후 프로젝트에 기존 Model에 FK 컬럼을 추가해.. 2021. 10. 11. 12:58
Think 2022년 읽을 책 정리 2022년엔 독서 습관을 기르고자 한다. 1년에 12권, 한달에 1권씩 읽는 것을 목표로 정했다. 평소에 관심이 있었고 읽고 싶었던 책을 기준으로 12권을 정했다. 책 목록 정리하는 뇌 해커와 화가 코끼리와 벼룩 Two Scoops of Django 파이썬 클린코드 Clean Code Test Driven Development 효율적 개발로 이끄는 파이썬 실천기술 그림으로 공부하는 IT 인프라 구조 그림으로 배우는 Http & Network Basic 아마존 웹 서비스 (AWS Discovery Book) 프로그래머의 길 멘토에게 묻다 책 읽는 방법 Skimming (이해 x, 빠르게 대충 흐름 읽기) Read (자세히 읽기, 모르는 부분 체크) Read + Review (이해가 된 부분은 pass, 모.. 2021. 10. 10. 20:49
Posts/Server 백엔드 개발자가 알아두면 좋은 리눅스 명령어 및 로직 SSH Secure Shell의 약자로 원격에 있는 컴퓨터를 안전히 제어하기 위한 프로토콜, 프로토콜 프로그램을 말합니다. SSH 클라이언트와 SSH 서버의 상호작용으로 SSH 서버에 접속하여 설치된 운영체제를 제어할 수 있습니다. 클라이언트와 서버 사이에 강력한 보안 및 암호화 방식을 통해 연결되어 있습니다. 중간에 주고 받는 비밀번호, 카드 정보 등 데이터 정보를 가로채도 해석할 수 없는 암호로 되어 있어 보안상의 이점을 제공하는 역할을 합니다. 가장 대표적 예는 사용자가 컴퓨터 시스템에 원격으로 로그인하는 것입니다. Git의 경우도 Github은 기본적으로 SSH를 지원하고 있습니다. SSH Client 리눅스, macOS와 같은 유닉스 계열의 OS는 기본적으로 SSH 클라이언트와 서버가 설치되어 .. 2021. 10. 7. 00:00