2025 공군 입대 준비물 (구매 링크 포함)
·
공군
*이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다. 먼저 갔다 온 사람들 + 인터넷의 자료들을 참고하여 군 입대 준비물을 정리했다. (본인은 5월 19일 입대)구매가 필요했던 것들을 목록 위쪽에 배치했다. 구매가 필요하지 않았던 물품들에서도 본인한텐 사야 할 수 있으니 체크해 보자.목록구매가 필요했던 것들[ ] 다슈 올인원 바디워시 샴푸 2통[ ] 얼굴 로션[ ] 선크림[ ] 3M 이어플러그[ ] 무릎 + 팔꿈치 보호대[ ] 전자시계 (진동알람 + 방수)[ ] 깔창[ ] 가루 커피[ ] 방수밴드[ ] 파스[ ] 아이폰 일체형 충전기 (본인 기종에 따라 선택, 구매 링크에서 제외)[ ] 유선 이어폰 (본인 기종에 따라 선택, 구매 링크에서 제외)아래는 병원 구매[ ] ..
[42서울] ft_transcendence 구현 1 - 과제 명세, Node.js와 Fastify 프로젝트 세팅 및 Fastify 아키텍처 패턴
·
대외활동/42서울
서론드디어 42서울의 마지막 과제인 ft_transcendence(트센)이다. 여기까지 오는 데 많은 동료들이 블랙홀에 빠지거나 자신만의 길을 찾아 떠났다. 나도 지금까지 42서울을 계속하며 그만둘까 힘들었던 적도 많았지만, 그래도 1년 6개월 많은 고민과 노력 끝에 마지막 과제를 할 수 있게 되었다. 과제 명세 서론 내가 트센을 접할 무렵 과제 명세가 바뀌었다. 백엔드를 맡기로 한 나한테 적용된 부분은기존 : (Python) Django + PostgreSQL (또는 순수 Ruby)수정 : (Node.js) Fastify + SQLite (또는 순수 Php) 나는 Spring Java/Kotlin 기반의 백엔드 개발자였는데 과제 명세로 처음 접해보는 런타임과 아예 처음 들어보는 프레임워크를 사용하게 되..
[Java Spring] COGO 개발일지 - Spring Security에서 JWT 인증 처리 방식 비교 (JwtAuthenticationFilter)
·
백엔드/Java + Spring
COGO 서버를 개발하며 JwtAuthenticationFilter를 구현하던 중 이전 프로젝트에서 작성했던 코드와 비교를 하며 궁금증이 생겼다.JwtAuthenticationFilter에서는 Jwt를 파싱해서 스프링 시큐리티에 인증 정보를 주입한다. 이때 데이터베이스를 확인하여 유저가 실제로 존재하는지 체크하고 인증 정보를 주입할까? 아니면 Jwt 토큰을 파싱해서 UserDto를 customOAuth2User(또는 UserDetails)에 넣고 인증정보를 주입할까? 에 대한 고민이 생겼고 어떤 방법이 옳은 방법인지, 혹은 각 방법에 어떤 장단점이 있는지 찾아보게 되었다. JWT 인증 필터에서의 접근 방식 비교JWT 토큰을 검증하고 인증 정보를 설정하는 JwtAuthenticationFilter에서 사용..
[Java Spring] COGO 개발일지 - 코드 중복 해결에 대한 고민 해결책 (DI, AOP, 어노테이션)
·
백엔드/Java + Spring
코드 중복 해결에 대한 고민과 최선의 해결책 코드를 보니 getUserNameByAuthentication 메소드가 여러 컨트롤러에 걸쳐 중복되고 있다. 이런 중복은 DRY(Don't Repeat Yourself) 원칙을 위반하는 전형적인 케이스다. 이런 상황에서 몇 가지 해결책을 생각해볼 수 있다.현재 상황 분석현재 각 컨트롤러에서 동일한 코드로 인증된 사용자의 이름을 가져오는 메소드를 반복 구현하고 있다. 이렇게 중복된 코드는:유지보수 어려움 - 한 곳에서 수정이 필요할 때 모든 곳을 찾아 수정해야 한다버그 발생 가능성 증가 - 일부만 수정하고 나머지는 놓칠 수 있다코드 품질 저하 - 불필요한 코딩으로 전체 코드베이스 비대화된다해결책들1. 유틸리티 클래스 만들기public class Authentic..
[42서울] inception 구현과 설명 (도커 이미지 설계하기)
·
대외활동/42서울
서론inception 과제는 도커를 활용해 여러 서비스를 컨테이너화하고, 직접 서버를 구축하는 프로젝트 프로젝트이다. 프로젝트를 올바르게 구현하면 웹 브라우저에서 login.42.fr 로 접속해서 워드프레스 서비스를 이용할 수 있다. 도커(Docker)를 사용하여 서비스별 컨테이너를 구성Docker Compose를 활용하여 컨테이너 간 연결 및 오케스트레이션보안 및 성능을 고려한 서버 환경 구성WordPress, MariaDB, Nginx 등 웹 서비스 인프라 구성   Docker, Docker Compose?도커와 도커 컴포즈에 대한 개념을 공부하고 과제를 시작하자.도커란?도커는 컨테이너(Container) 기술을 기반으로 애플리케이션을 쉽게 배포, 실행, 관리할 수 있도록 해주는 플랫폼이다.이전에 쓴..
[42서울] inception 도커의 개념 (가상환경, 볼륨, 동작 원리)
·
대외활동/42서울
도커는 애플리케이션을 격리된 컨테이너 환경에서 실행하여 개발과 운영의 효율성을 극대화하는 도구이다. 이번 글에서는 42서울 inception 과제 구현 및 평가 과정에서 배웠던 내용을 토대로 도커가 무엇인지, 왜 사용해야 하는지, 그리고 어떻게 동작하는지에 대해 정리해 보고, 특히 네트워크와 볼륨 관리 측면에서의 이점을 중점적으로 정리해 보았다.WHAT: 도커 & 서비스 배포도커 가상환경과 가상머신의 차이점가상머신(VM)가상머신은 하이퍼바이저를 통해 하드웨어를 가상화한 후, 그 위에 각기 다른 운영체제를 실행합니다.→ 무겁고 부팅 시간이 길며, 자원 소모가 큽니다.도커 컨테이너도커는 운영체제의 커널을 공유하면서, 애플리케이션을 격리된 컨테이너 내에서 실행합니다.→ 경량화되어 빠른 부팅과 효율적인 자원 사..
[42서울] cpp08 구현
·
대외활동/42서울
CPP08은 템플릿, STL (Standard Template Library), 그리고 반복자와 같은 C++ 개념을 다루는 과제이다. C++ 반복자(iterator)란?반복자(iterator)는 C++의 STL(표준 템플릿 라이브러리)에서 컨테이너의 요소를 순회(traverse)하거나 접근(access)하기 위해 사용되는 추상화된 포인터이다.컨테이너 내부 구현에 독립적이며, 배열이나 연결 리스트 같은 자료구조를 한 가지 방식으로 순회할 수 있게 해준다. 반복자의 역할반복자는 컨테이너의 첫 번째 요소부터 마지막 요소까지 순회하는 데 사용됩니다.STL 알고리즘(std::sort, std::find 등)은 반복자를 통해 컨테이너와 상호작용합니다.반복자는 컨테이너의 세부 구현을 감춥니다. (추상화) ex00#i..
[42서울] cpp07 구현
·
대외활동/42서울
cpp07은 c++의 template에 관한 과제이다. ex00#ifndef TEMPLATE_HPP# define TEMPLATE_HPPtemplate void swap(T &a, T &b){ T tmp; tmp = a; a = b; b = tmp;}template T min(T a, T b){ return (a T max(T a, T b){ return (a > b ? a : b);}#endif //TEMPLATE_HPP  함수 템플릿 (Function Template)함수 템플릿은 특정 데이터 타입에 독립적인 함수를 정의할 때 사용된다. 예를 들어, 두 값을 교환하는 함수를 작성할 때 int, float, string 등 모든 데이터 타입에 대해 동일한 코드를 중복 작..
[Kotlin] 8. 코틀린 DSL(Domain-Specific Language) 소개와 작성 방법
·
프로그래밍 언어/Kotlin
이번 글에서는 코틀린의 DSL(Domain-Specific Language)에 대해 알아보겠습니다. DSL은 특정 도메인에 특화된 언어로, 복잡한 작업을 간단하고 읽기 쉽게 표현하는 데 유용합니다. 코틀린은 DSL을 작성하기에 적합한 언어적 특성을 가지고 있어 매우 강력합니다.1. DSL이란?DSL은 특정 문제를 해결하거나 특정 도메인을 표현하기 위해 설계된 작은 언어입니다.예를 들어, SQL은 데이터베이스 작업을 위한 DSL이고, HTML은 웹 문서를 표현하기 위한 DSL입니다.DSL의 장점읽기 쉽고 직관적이다.도메인 전문가(개발자가 아닐 수도 있음)도 이해하기 쉽다.특정 문제를 해결하기 위한 코드를 간결하게 작성할 수 있다.2. 코틀린에서 DSL 작성하기코틀린은 다음과 같은 언어적 특성을 통해 DSL..
[Kotlin] 7. 코틀린의 코루틴과 비동기 프로그래밍
·
프로그래밍 언어/Kotlin
이번 글에서는 코틀린에서 비동기 작업을 효율적으로 처리할 수 있는 코루틴(Coroutines)을 다루어 보겠습니다. 코루틴은 비동기 프로그래밍을 쉽고 읽기 좋게 만드는 코틀린만의 강력한 기능입니다.1. 코루틴이란?코루틴은 경량 스레드라고 생각할 수 있습니다. 스레드보다 훨씬 가볍고 효율적이며, 수천 개의 코루틴을 동시에 실행할 수도 있습니다.(1) 주요 특징비동기 코드를 동기 코드처럼 작성할 수 있습니다.기본적으로 스레드 차단(blocking)이 없으므로 자원을 효율적으로 사용할 수 있습니다.suspend 함수를 사용해 중단 가능한 작업을 작성합니다.2. 코루틴 시작하기코틀린에서 코루틴을 사용하려면 kotlinx.coroutines 라이브러리를 추가해야 합니다.Gradle 설정:implementation..