본문 바로가기

전체 글56

이산 사건 시스템 명세 DEVS(Discrete Event System Specification) 알고리즘 DEVS는 복잡한 시스템을 모델링하고 시뮬레이션하기 위한 강력하고 체계적인 프레임워크를 일컫는데, 의 가장 큰 특징은 계층적이고 모듈화(hierarchical and modular) 된 접근 방식으로 대규모 시스템의 개발 및 검증에 용이합니다. 핵심 구성 요소Atomic Model - 시스템의 가장 기본적인 단위, 더 이상 나눌 수 없는 최소 단위의 동작을 정의상태 집합입력 사건 집합출력 사건 집합내부 상태 변환 함수외부 상태 변환 함수동시 상태 변환 함수출력 함수시간 진행 함수Coupled Model - 여러 개의 아토믹 모델 또는 다른 커플드 모델들을 연결하여 더 큰 시스템을 구성하는 역할구성 요소 집합 (D)외부 입력 연결 (EIC)내부 연결 (IC)외부 출력 연결 (EOC)DEVS 작동원리초기화:.. 2025. 9. 9.
자바 개발자 면접 내용 복기 아래 내용은 답변한 내용중 완벽히 이해 하지 못한 항목 위주로 작성하였습니다. 꼬리질문 형식으로 들어갔기 때문에 심층적인 질문 까지 들어갔으며 본인이 답변한 내용중 아쉬웠던 답변이나 면접관이 원하는 답변을 기억하지 못해낸 내용을 적어 봤습니다. 그때문에 면접을 두시간 정도 본것 같고 많은 내용을 다루었지만 뻔한 질문이나 본인한테 상대적으로 쉬웠던 질문, 그리고 자바를 제외한 질문 내용은 제외했습니다. 여기서 답변한 내용은 초록색 애매하게 답변한 부분은 주황색, 틀리게 대답한 부분은 빨간색으로 표기했습니다. Q. 자바 개발하실 때 어떤 버전을 사용하셨나요?A: 레거시 코드 기반은 Java 8을 사용했으며 신규 프로젝트인 경우 Java 17을 활용 했습니다. Q. 그렇다면 왜 레거시 기반은 Java 8이 .. 2025. 9. 5.
파이선 공부해야 할 항목 1장. 파이써닉으로 생각하기파이써닉 코드: 파이썬의 철학과 스타일을 따르는 코드 작성법네이밍: 변수, 함수, 클래스 등의 이름을 짓는 규칙과 관례독스트링(Docstrings): 코드 문서화를 위한 문자열 (__doc__) 및 관련 도구리스트 컴프리헨션(List Comprehension): 간결하고 효율적인 리스트 생성 기법람다(Lambda): 한 줄로 표현되는 익명 함수제너레이터(Generator): 메모리 효율적인 이터레이터 생성 방식예외 처리(Exception Handling): try, except, finally를 이용한 오류 관리 및 사용자 정의 예외 생성2장. 데이터 구조기본 자료구조: set, namedtuple, str, unicode, bytes의 특징과 활용법리스트와 제너레이터: 메모리.. 2025. 9. 5.
Knapsack (Greedy, 0/1) 알고리즘 정리 코테에서 중간 난이도나 마지막 문제로 자주 출제되는 유형인 DP, Greedy 알고리즘입니다. 많이들 어려워하는 유형이며 저도 어려워 하는 유형인데 제일 기초적인 Knapsack 알고리즘부터 다루겠습니다. 최대의 효율성을 선택하기 위해 각 루프나 if-else문에서 어떤 선택을 해야하는지 먼저 생각해야 하는데요 보통의 Knapsack문제의 경우 부피 / 무게 비중으로 가치를 두기 때문에 모든 경우의 수에 대해 비중을 계산합니다. 여기서 내용물을 쪼갤 수 있느냐, 없느냐의 차이에서 Greedy알고리즘으로 접근을 할 지, 0/1 방식으로 접근을 할 지 정합니다. 해당 문제를 정복 하기 위해 다양한 문제와 풀이 방법을 적어보도록 하겠습니다. 1. Knapsack 문제를 greedy 알고리즘으로 푸는 방법으로.. 2025. 8. 29.
Kubernetes 용어 정리 및 응용 법 안녕하세요! 최근 많은 회사에서 Kubernetes 를 다루는 것을 기본 소양을 하고 있는데. 실제 본 개발에 들어가면 Production에 제품을 배포하거나 내부적으로 가용성 테스트를 하기 전에는 쓰이는일이 많지 않아서 간단한 프로젝트를 통해 예시를 드리고 중요 키워드 포인트를 집어드리려고 합니다. 필요 환경: FastAPI, Reddis, Celery, Kubernetes, Docker(docker-compose) 상황 & 목표: FastAPI에서 요청이 많이 들어와 Celery의 Worker Pod의 수가 자동으로 늘어나야 하는데, 그럼에도 불구하고 FastAPI의 HTTP 요청이 너무 많아져 FastAPI Pod도 하나 더 늘리고 싶으나, 요청 처리가 완료되면 다시 원래의 Pod 수로 돌아가.. 2025. 8. 23.
동시성과 병렬성의 차이 (Concucurrency vs Paralleism) 동시성과 병렬성에 대해 혼용하여 사용할 수 있지만 이 두개의 용어는 명백히 다른 차이점을 가지며 정확하게 사용을 해야지 내용전달을 할 때 오해의 소지가 없어진다. 동시성은 여러 작업을 번갈아 가며 처리하여 동시에 실행되는 것처럼 보이게 만드는 것이고, 병렬성은 여러 작업을 실제로 동시에 처리하는 것입니다. 아래의 사진을 참고하시면 됩니다. 구분동시성 (Concurrency)병렬성 (Parallelism)목표여러 작업을 다루는 것 (Dealing with tasks)여러 작업을 동시에 실행하는 것 (Executing tasks)실행논리적 개념, 단일 코어에서도 가능물리적 개념, 반드시 멀티 코어 필요핵심 원리작업 전환 (Context Switching)동시 실행 (Simultaneous Executio.. 2025. 8. 20.