[톡리포트] #3 군대에서 앱 개발 완성기 - 공군 일병부터 상병까지
·
기타
개발 기간작년 11월, 공군 일병 4호봉 때 개발을 시작해서 올해 2월 상병 1호봉 때 개발을 완료했다. 지금은 상병 3호봉이 되었고, 약 4개월간 군 복무와 개발을 병행했다.가장 힘들었던 순간가장 힘들었던 부분은 프론트엔드를 이번에 처음 해봤다는 점이다. 아무것도 모르는 상태에서 시작했기 때문에 어떤 프레임워크와 언어를 선택할지부터 고민해야 했고, 코드 아키텍처 설계, 코드 품질 관리까지 전부 스스로 판단해야 했다. AI 바이브 코딩으로 개발을 진행했는데, AI가 잘못된 코드나 유지보수하기 어려운 코드를 내놓을 때마다 직접 검토하고 더 나은 방향으로 다시 요청하는 과정을 반복했다. 단순히 AI가 짜준 코드를 붙여넣는 게 아니라, 코드를 이해하고 판단하는 과정이 필요했다.거기에 개발 기간 중 큰 훈련까지..
[톡리포트] #2 군대 싸지방에서 React Native로 앱 개발하기 (아이패드 -> Github Codespace)
·
기타
군대 싸지방에서 코딩하기저번 포스팅에서는 열심히 아이패드로 코딩을 했었는데, 아이패드로 평소에 인터넷을 사용할 수 없다는 점과 아이패드 성능 상 빌드 속도가 느린 점이 너무 불편해서 결국 싸지방 컴퓨터를 사용하기로 결정했다. 먼저 싸지방 컴퓨터의 스펙과 제한 사항은 어떻게 될까? 보안 상 스펙을 정확히 확인할 수는 없지만 대략적으로 설명해 보겠다. 웹페이지 접속 -> 페이지 로딩 속도가 느리긴 하지만 감안할 정도영상 재생(유튜브) -> 1080 해상도 원활히 재생 가능개발 프로그램 설치 불가 이 정도 조건이면 프론트, 백 개발 모두 싸지방 컴퓨터로 충분히 가능하다고 판단했다. 일단 개발 프로그램을 설치할 수 없기에 온라인 IDE를 지원하는 사이트를 찾아보았다. vscode를 제공하는 Github Code..
[톡리포트] #1 군대에서 아이패드로 앱 개발하기
·
기타
군대에서 아이패드로 앱 개발하기요즘 군대에서 아이패드로 카카오톡 채팅 AI 분석 리포트 서비스 [톡리포트]라는 IOS 앱을 개발하고 있다. 열심히 개발하고 있었는데 막힌 김에 상황 정리할 겸 블로그 포스팅을 쓰게 되었다.프론트엔드 개발은 iPad에 설치할 수 있는 swift playground란 앱을 사용해서 개발하고 있다. 서비스 기획 상 웹 앱보다는 스마트폰에 설치하고 사용할 수 있으면 좋을 것 같아서 선택했다. 일단 난 프론트엔드 개발 경험이 없어서 AI 바이브 코딩으로 개발을 했다.백엔드 개발은 파이썬의 FastAPI와 Firebase를 사용하기로 했다. 자바/코틀린 Spring 개발 경험이 더 많긴 하지만 아이패드라는 제약 때문에 스프링을 돌리기에는 너무 무거울 것 같았다. 그리고 스프링을 돌려..
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..