분류 전체보기 232

[Python] 모듈

학습 자료 : https://docs.python.org/ko/3.13/tutorial/modules.html모듈자바에서는 자주 사용하는 클래스나 함수들을 패키지로 묶어놓고 import 해서 사용한다. 파이선의 Module이 이와 같은 역할을 한다. 모듈이 왜 필요한가 ?인터프리터에서 직접 작성한 코드는 종료하면 사라져버린다. 그러나 모듈로 만들면 코드를 파일(*.py)로 저장할 수 있어서 재사용하거나 공유하기가 편리하다.모듈 불러오기: importimport fibo위 코드는 fibo 라는 모듈 객체를 만든다. 이 객체를 통해 모듈 안의 함수에 접근할 수 있다.fibo.fib(1000)fibo.fib2(100)__name__ 변수: 스크립트의 이름표모든 파이썬 모듈에는 __name__이라는 특별한 변..

Python 2025.09.25

[Python] 자료구조

학습 자료 : https://docs.python.org/ko/3.13/tutorial/datastructures.html자료구조리스트파이썬의 리스트는 객체지향적으로 설계되어 있어 다양한 내장 메서드를 제공한다. 아래 메서드들은 대부분 리스트를 제자리에서(in-place) 수정하고 None 을 반환한다. 요소 추가 및 확장list.append(x): 리스트 끝에 하나의 요소를 추가한다.list.extend(iterable): 리스트 끝에 다른 iterable(리스트, 튜플 등)의 모든 요소를 추가한다.요소 삽입 및 삭제list.insert(i, x): 특정 인덱스 i에 요소를 삽입한다.list.remove(x): 리스트에서 첫 번째로 발견된 x의 값을 삭제한다.list.pop([i]): 특정 인덱스의 i..

Python 2025.09.25

[Python] 조건문·반복문·함수

학습 자료 : https://docs.python.org/ko/3.13/tutorial/controlflow.html자료형파이썬은 타입 명시 없이 변수를 바로 선언할 수 있다.List : 여러개의 데이터를 순서대로 저장할 수 있음Tuple : List와 비슷하지만 한번 생성하면 내용을 변경할 수 없다Dictionary : 키와 값 쌍으로 데이터를 저장한다문법조건문if age > 20: print("성인")반복문words = ['cat', 'window', 'defenestrate']for w in words: print(w, len(w))파이썬의 for 문은 인덱스를 직접 다루지 않고, 요소 자체를 순회하는 방식이 기본임그래서 range() 를 사용하는데, range()는 반복문을 돌릴 때 특..

Python 2025.09.25

[Restful 아키텍쳐] RMM의 의미와 각 단계의 설계적 의의

아래 글은 Martin Fowler 의 Richardson Maturity Model - steps toward the glory of REST 를 읽고 정리한 내용입니다. ※ RMMRichardson Maturity Model (RMM)미국 개발자 Leonard Richardson이 제안한 RESTful API 성숙도 측정 모델RMM 은 API가 REST 원칙을 얼마나 잘 지키고 있는지를 Level 0 → Level 3 네 단계로 나누어 설명한다. RMM 단계Level 0 – The Swamp of POX : HTTP를 단순 데이터 운반(RPC) 용도로만 사용. 모든 요청이 하나의 엔드포인트로 감.ㄴ RPC : Remote Procedure Call, 원격 프로시저 호출 / 네트워크에 있는 다른 ..

카테고리 없음 2025.08.08

[CS] 멀티스레딩과 멀티프로세싱

▶ 프로세스컴퓨에서 실행중인 프로그램각각의 프로세스는 독립된 메모리 공간을 할당 받는다 ▶ 메인 메모리프로세스가 CPU 에서 실행되기 위해 대기하는 곳 ▶ IO(input/output)파일을 읽고 쓰거나, 네트워크의 어딘가와 데이터를 주고 받는 것입출력 장치(마우스, 키보드 등)와 데이터를 주거나 받는 것 ▶ 단일 프로세스 한 번에 하나의 프로그램만 실행됨단점 : CPU 사용률이 좋지 않음해결책 : "여러개의 프로그램을 메모리에 올려놓고 동시에 실행시키자" 라는 아이디어. IO 작업이 발생하면 다른 프로세스가 CPU 에서 실행됨. 이런 종류의 프로그램을 멀티프로그래밍 이라고 함 ▶ 멀티 프로그래밍여러개의 프로그램이 동시에 실행되는 것 ( IO 작업이 발생하면 다른 프로세스가 CPU 에서 실행됨 ) 목..

카테고리 없음 2025.08.07

[프로젝트] Mixed Content 오류로 인한 API 요청 차단 – Nginx를 통한 HTTPS 리버스 프록시로 해결

이슈 내용프론트엔드(React)가 HTTPS에서 서비스되는 반면, 백엔드(Spring API)는 HTTP로 서비스되고 있어 브라우저에서 Mixed Content 오류로 인해 API 요청이 차단되는 문제가 발생함. Mixed Content ? HTTPS 페이지가 HTTP 리소스를 요청할 경우 발생하는 보안 오류. 브라우저가 보안을 이유로 요청을 차단함. 이를 해결하기 위해 Nginx를 EC2 인스턴스에 설치하고, HTTPS 리버스 프록시를 구성하여모든 API 요청을 https://api.flybrief.site 도메인으로 안전하게 전달하는 구조로 변경한다. 문제HTTPS 페이지가 HTTP 리소스를 불러올 때 발생하는 보안 오류 해결 API 서버에 인증서 설치Nginx를 통해 HTTPS 리버스 프록시 구성모..

프로젝트 2025.07.18

[Spring] AOP 동작원리 : 리플렉션, JDK 동적 프록시

🎓 이 글은 인프런에서 제공하는 "스프링 핵심 원리 - 고급편" 강의를 수강하면서 정리한 내용을 바탕으로 작성한 글입니다.https://inf.run/FWeFN 이전글 에서 프록시를 사용해서 기존 코드를 변경하지 않고 부가기능을 적용하는 방법을 알아봤다. 그러나 클래스 기반 프록시의 경우 부가기능을 적용해야 하는 대상 클래스가 100개라면 프록시 클래스도 100개 만들어야 했다. 프록시 클래스를 하나만 만들어서 모든 곳에 적용할 수는 없을까 ? 자바가 기본으로 제공하는 JDK 동적 프록시 기술을 활용하면 프록시 객체를 동적으로 만들어낼 수 있다. JDK 동적 프록시를 이해하기 위해서는 먼저 자바의 리플렉션 기술을 이해해야 한다. ※ 리플렉션 기술리플렉션 기술을 통해 클래스나 메서드의 메타정보를 동적..

Spring 2025.06.12

[Spring] 디자인 패턴 : 원본 코드를 손대지 않고 부가기능 적용하기

🎓 이 글은 인프런에서 제공하는 "스프링 핵심 원리 - 고급편" 강의를 수강하면서 정리한 내용을 바탕으로 작성한 글입니다.https://inf.run/FWeFN 이전글 [Spring] 디자인 패턴 : 적은 코드 수정으로 공통 로직을 작성하기🎓 이 글은 인프런에서 제공하는 "스프링 핵심 원리 - 고급편" 강의를 수강하면서 정리한 내용을 바탕으로 작성한 글입니다.https://inf.run/FWeFN 적은 코드 수정으로 공통 로직을 작성할 수 있기 위feelfreetothink.tistory.com 템플릿 메서드 패턴, 전략 패턴, 템플릿 콜백 패턴을 사용하면 적은 코드 수정으로 공통로직(부가기능) 을 적용할 수 있었다. 그러나 결국 원본 코드를 수정해야한다는 단점이 있었다. 원본 코드를 손대지 않고 부..

카테고리 없음 2025.06.11

[Spring] 디자인 패턴 : 적은 코드 수정으로 공통 로직을 작성하기

🎓 이 글은 인프런에서 제공하는 "스프링 핵심 원리 - 고급편" 강의를 수강하면서 정리한 내용을 바탕으로 작성한 글입니다.https://inf.run/FWeFN 적은 코드 수정으로 공통 로직을 작성할 수 있기 위해 고안된 메서드 패턴을 소개한다. 공통 로직 (로그 추적기) 요구사항더보기* 모든 PUBLIC 메서드의 호출과 응답 정보를 로그로 출력* 애플리케이션의 흐름을 변경하면 안됨 - 로그를 남긴다고 해서 비즈니스 로직의 동작에 영향을 주면 안됨* 메서드 호출에 걸린 시간* 정상 흐름과 예외 흐름 구분 - 예외 발생 시 예외 정보가 남아야 함* 메서드 호출의 깊이 표현* HTTP 요청을 구분* HTTP 요청 단위로 특정 ID 를 남겨서 어떤 HTTP 요청에서 시작된 것인지 명확하게 구분이 가능해야 ..

Spring 2025.06.11

[프로젝트] 반려동물 자랑 토이프로젝트 소개

📌 프로젝트 개요“모여라 PAW PAW” 는 반려동물 자랑 커뮤니티입니다.회원 가입 후 이용할 수 있으며, 반려동물의 사진과 프로필을 등록해 다른 사람과 공유할 수 있습니다.좋아하는 단어, 싫어하는 단어, 한줄 소개 등을 통해 사용자와 반려동물 간의 교감을 표현합니다. 사용자는 등록된 반려동물 프로필을 보며 좋아요를 남길 수 있으며, 이를 기반으로 인기 랭킹이 구성됩니다.반려동물 이미지 등록 시 AI를 통한 반려동물 판별 기능을 적용하여, 등록된 이미지가 실제 반려동물인지 사전에 검증할 수 있도록 했습니다. Github Repo : https://github.com/HAN-SEOHYUN/wedlessInvite/issues✅ 목표아키텍처 분리, 예외 처리 등의 구조적인 설계실전 부하 테스트 경험공부중인..

프로젝트 2025.06.09