AWS Community Day 2026 - "혼자 공부하면 성장하지만, 함께하면 더 빠르다"
·
Engineering/Infra & Cloud
개발자로서 성장 방향을 고민하던 중, AWS Community Day에 다녀왔습니다. 이번 행사는 단순히 최신 기술 트렌드를 찍먹하는 자리가 아니라, "개발자는 어떤 태도로 기술을 대하고, 커뮤니티 속에서 어떻게 성장해야 하는가"에 대한 본질적인 답을 얻을 수 있었던 시간이었습니다.특히 AI 시대의 개발자 태도와 인프라 자동화(Operations as Code) 세션에서 큰 울림을 받았습니다. 오늘 배운 내용을 잊지 않기 위해, 그리고 실천하기 위해 기록을 남깁니다.🚀 Keynote: 환경이 만든 나의 성장 이야기발표: 정태환님 (Operation)행사의 문을 연 키노트에서는 '커뮤니티의 힘'에 대해 강조하셨습니다.성장의 선순환: 생활코딩으로 AWS 입문 → 자격증 취득 → 커뮤니티 활동 → 유튜브('..
AWS 초보의 네트워크 정복기: 이론부터 핸즈온까지 (feat. Stateful vs Stateless)
·
Engineering/Infra & Cloud
[서론]이번 주 수요일(21일), AWSKRUG(AWS 한국 사용자 모임)에서 주최한 #Beginner 모임 - AWS Network 기초 이론과 Hands-on Lab에 다녀왔다.평소 네트워크 CS 지식이 부족하다고 느껴서 기초를 다지고자 신청했는데, 결론부터 말하자면 "역시 네트워크는 어렵다"는 것을 뼈저리게 느낀 시간이었다. 하지만 동시에 내가 무엇을 모르는지 명확히 알게 된 소중한 시간이기도 했다.[1. 이론 세션: 아는 만큼 들린다]강의는 AWS 네트워크의 전반적인 개념을 다루었다. 방대한 내용을 짧은 시간 안에 다루다 보니 속도가 상당히 빨랐고, 네트워크 베이스가 부족한 나에게는 벅찬 부분도 있었다.✅ 다행이었던 점: 선행 학습의 중요성 운 좋게도 이번 주에 DNS와 TCP 3-Way Hand..
[개발기] 프로토타입을 넘어 서비스로: '경기 안심 로드' 대규모 리팩토링 기록 (Spring Boot 도입)
·
Engineering/AI & Tools
서론: 해커톤 그 이후, 멈추지 않는 도전지난 포스팅(경기 기후 바이브코딩 해커톤 후기)에서 소개했던 '경기 그늘 로드' 프로젝트를 기억하시나요? 감사하게도 해커톤 이후 After 프로젝트 지원 대상에 선발되어, 단순한 아이디어 구현을 넘어 '실제 서비스 가능한 수준'으로 프로젝트를 고도화할 기회를 얻게 되었습니다.특히 이번 프로젝트는 '클로드 코드(Claude Code)'를 활용한 AI 페어 프로그래밍(Vibe Coding) 방식을 적극 도입했습니다. 해커톤 당시에는 토큰 제한 문제로 메인 페이지만 구현하는 데 그쳐 아쉬움이 컸지만, 이번에는 토큰 효율성을 고민하며 실제 백엔드 로직까지 완성도 있게 구현해볼 수 있었습니다.오늘은 프로젝트명을 '경기 안심 로드(Gyeonggi Safety Road)'로 ..
[Code Review] Spring Boot 영화 감상일지 프로젝트 리뷰: 아키텍처와 JPA 의존성 분리
·
Engineering/Backend Core
최근 다른 분이 작업하신 Spring Boot + JPA 기반의 영화 감상일지 REST API 프로젝트를 상세하게 코드 리뷰할 기회가 있었습니다.🔗 관련 링크GitHub Repository: https://github.com/heetwo2234/movie-diary-edit참고한 프로젝트: https://namgyus.tistory.com/8기능적으로는 요구사항을 잘 충족하고 있었지만, **객체지향 설계 원칙(OOP)**과 유지보수성 관점에서 몇 가지 아쉬운 패턴들이 보였습니다. 이번 포스팅에서는 해당 프로젝트의 코드를 분석하며 발견한 장점과, 특히 Repository 설계에서 드러난 아키텍처 이해도의 아쉬움, 그리고 이를 어떻게 개선(Refactoring)해야 하는지를 중점적으로 다뤄보겠습니다.1. ..
[Code Review] Spring Boot 칵테일 프로젝트: JPA 설계의 모범 사례와 보안 취약점 개선
·
Engineering/Backend Core
최근 Spring Boot와 JPA를 활용하여 칵테일 레시피를 공유하는 'CocktailLab' 프로젝트의 코드를 리뷰할 기회가 있었습니다.이 프로젝트는 전반적으로 Spring Boot의 정석적인 아키텍처를 잘 따르고 있었지만, 실제 배포와 운영을 고려했을 때 보안과 확장성 측면에서 몇 가지 중요한 개선 포인트가 발견되었습니다. 이번 포스팅에서는 해당 프로젝트의 잘된 점(Good Practices)과 아쉬운 점(Bad Practices), 그리고 더 나은 코드를 위한 리팩토링 제안을 정리해 보았습니다.1. 👏 칭찬할 만한 점 (Good Points)입문 단계에서 놓치기 쉬운 설계의 기본기가 아주 탄탄하게 잡혀 있는 프로젝트였습니다.깔끔한 레이어드 아키텍처 (Layered Architecture)Cont..
[Spring Boot] 백엔드 핵심 흐름: JPA와 DDD, 그리고 AWS S3
·
Engineering/Backend Core
📝 서론: 수업을 앞두고Spring REST API 수업을 듣던 중, 강사님께서 앞으로 배울 핵심 기술들에 대해 미리 키워드를 던져주셨다. 궁금해서 미리 개념과 전체적인 흐름을 정리해 보고자 한다.오늘 정리할 내용은 백엔드 개발의 핵심인 **데이터 처리 방식(ORM, JPA, DDD)**과 파일 처리를 위한 AWS S3의 역할이다.1. 데이터를 다루는 흐름: ORM → JPA → DDD이 세 가지는 서로 다른 기술이라기보다, "데이터 중심 개발에서 비즈니스 로직 중심 개발로 나아가는 단계"라고 이해하면 쉽다.(1) ORM (Object-Relational Mapping)개념: 객체(Java Class)와 관계형 DB(SQL) 사이의 통역사."DB 테이블을 자바 객체처럼 다루고 싶다"는 아이디어에서 출발..
[Backend] DB 성능 최적화: 커넥션 풀(Connection Pool)과 HikariCP의 등장
·
Engineering/Backend Core
1. 서론: 왜 속도가 중요할까?학원 수업 중 강사님께서 "HikariCP가 DBCP보다 훨씬 빠르기 때문에 요즘은 무조건 이걸 쓴다"고 말씀하셨다. 단순히 "빠르다"고만 알고 넘어가기엔 백엔드 개발자로서 궁금증이 생겨, 정확히 무엇이 다르고 얼마나 차이가 나는지 정리해 보았다. 2. 커넥션 풀(Connection Pool)이란?DB와 연결을 맺는 과정(Connection)은 꽤 무거운 작업이다.비유하자면, 매번 통화할 때마다 전화선을 새로 설치하고(연결), 통화하고(SQL 실행), 선을 뽑는(종료) 것과 같다.커넥션 풀이 없을 때: 요청마다 연결/해제를 반복하여 시간이 오래 걸림.커넥션 풀(Connection Pool): 전화기(Connection) 10대를 미리 설치해두고, 요청이 오면 수화기만 빌려..
TIL: MVC 패턴의 본질과 Service 인터페이스의 진실
·
Engineering/Backend Core
1. 배경 (Background)학원에서 순수 자바(Servlet/JSP)에서 Spring Boot와 MyBatis로 넘어가면서 파일이 많아지고 구조가 복잡해졌다. REST API를 짜면서도 "도대체 MVC 패턴이 뭐고, 왜 이렇게 쪼개는 거지?"라는 의문이 들어 개념을 확실히 정리하게 되었다.2. MVC 패턴과 Model의 진화MVC는 Model, View, Controller의 약자로 애플리케이션의 역할을 나누는 것이다. Spring Boot로 넘어오면서 'Model'의 역할이 세분화되었다.📌 구조의 변화Controller: 여전히 교통정리(요청/응답) 담당.Model (세분화됨):Service: 핵심 비즈니스 로직 (What).Mapper: DB 접근 및 SQL 실행 (How).DTO/VO: 데이..
코딩테스트 연습 - 홀짝 구분하기
·
Engineering/Backend Core
import java.util.Scanner;public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); if(n%2 == 0){ System.out.println(n +" is even"); }else{ System.out.println(n +" is odd"); } }}if(n%2 == 0){ System.out.println(n +" is even"); }else{ Syst..
코딩테스트 연습 - 문자열 돌리기
·
Engineering/Backend Core
import java.util.Scanner;public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String a = sc.next(); for(int i=0; ifor(int i=0; i System.out.println(a.charAt(i)); } 추가 잘 모르는 부분length() → 괄호를 안침a.charAt(i) → 그냥 i만 넣었거나 a만 넣었음.