본문 바로가기

Python20

[Network] 소켓 통신 서버 개발 입문: 언어 선택부터 필수 주의사항까지 오늘은 네트워크 프로그래밍의 기초이자 핵심인 소켓 통신 서버를 직접 구현해보기 위해 필요한 사전 지식들을 정리해본다. 어떤 언어로 시작하면 좋을지, 구현 시 주의해야 할 점은 무엇인지, 그리고 우리가 흔히 쓰는 HTTP 통신과는 무엇이 다른지 기록한다.1. 개발 언어 및 도구 선택소켓 통신을 처음 접한다면 목적에 맞는 언어 선택이 중요하다. 단순히 동작 원리를 배우는 것이 목적인지, 실제 고성능 서비스를 염두에 두는지에 따라 선택지가 나뉜다.추천 받은 언어Python (추천 👍):이유: 문법이 간결하고 socket 라이브러리가 직관적이다. 복잡한 설정 없이 통신 로직 자체에 집중하기 가장 좋다.Node.js:이유: 자바스크립트에 익숙하거나 채팅 서버 등을 만들 때 유리하다. 기본적으로 비동기(Event.. 2026. 1. 9.
Spring 개발자의 FastAPI 찍먹기: URL 단축기 프로젝트 1. 프롤로그: 왜 FastAPI인가?평소 Java/Spring Boot로 개발하던 나에게 Python의 FastAPI는 신선한 충격이었다. "빠르다", "직관적이다"라는 소문만 듣다가, 실제로 URL 단축 서비스(Shorten URL Service)를 만들어보며 Spring의 아키텍처를 Python에 녹여내는 과정을 기록해 본다.특히 가장 고민했던 부분은 "자유분방한 파이썬 코드에 어떻게 견고한 구조(Architecture)를 입힐 것인가"였다.2. 프로젝트 세팅: Modern Python StackSpring에 Gradle과 application.yml이 있다면, 이번 프로젝트에선 다음과 같은 스택을 사용했다.패키지 관리: Poetry (Python의 Gradle 느낌. 의존성 관리가 아주 깔끔함)환.. 2026. 1. 7.
[Java/Python] 문법 비교 정리 #9 Class Java에서의 Class // 실행 클래스 class Playground { public static void main(String[ ] args) { Sample sample = new Sample(); System.out.println(sample.a); // 1 sample.setA(5); System.out.println(sample.a); // 15 sample.setAA(19); System.out.println(sample.a); // 285 } } // 부모 클래스 선언 class TestClass { public TestClass() {} int a = 1; public void setA(int param) { this.a = param; } } // 부모 클래스 상속 class Samp.. 2022. 11. 12.
[Python] 오늘도 정리 - yield란? Yield? 일단 yield가 함수 안에서 return 대신 사용한다고 간략하게 설명이 되어 있습니다. 하지만 return 대신 yield가 사용되게 되면 generator라는 개념으로 함수 단위를 호출하게 됩니다. a = [1,2,3,4,5] b = [10,20,30,40,50] def yieldTest(): for x in a: if x == 3: yield x def returnTest(): for x in b: if x == 30: return x print(yieldTest()) # print(returnTest()) # 30 이와같이 동일한 조건에서도 yield가 선언되어 있는 함수는 generator를 생성합니다. 왜 generator를 사용할까요? generator를 사용하게 되면 최대 이.. 2022. 11. 11.