728x90
반응형

Category 224

[ Linux ] Docker 기반 Ubuntu – 웹 서버 환경 구축 가이드 (MariaDB · Java 8 · Tomcat)

Intro 안녕하세요. 환이s입니다 👋 오늘은 Docker 기반 Ubuntu 22.04 환경에서Java 8, MariaDb, Tomcat을 설치하고 설정하는 방법을 정리해 보려고 합니다. 보통 실무에서는 VM 기반 CentOS / Rocky Linux 환경을 많이 사용하지만,테스트 환경이나 로컬 개발 환경에서는 Docker가 훨씬 빠르고 편리합니다. 특히 컨테이너는 "매번 동일한 환경을 쉽게 재현" 할 수 있기 때문에서버 설정 실습이나 개발 테스트 환경 구축에 매우 유용하죠. 그래서 이번 글은VM 없이 Docker만으로 Ubuntu 개발 환경 만들기를 목표로 작성했습니다. 처음 Ubuntu 서버 환경을 구성하시는 분들도 부담 없이 따라올 수 있도록 명령어와 설정 파일까지 전부 정리해 두었습니다.1. ..

Linux 2025.12.24

[ MEMORY ] 3년차 개발자의 현실적인 마인드셋

Intro. 버티는 것도 선택이고, 태도는 더 중요하다 개발자로 3년 차가 되면이상하게 마음이 가장 복잡해진다. 신입이라는 보호막은 사라졌고,그렇다고 어디서든 환영받는 시니어도 아니다.일은 익숙해졌지만, 미래는 여전히 불안하다. 요즘 나는 자주 이런 질문을 스스로에게 던진다. "지금 이 회사를 계속 다니는 게 맞을까?" 이직을 생각하지 않은 날보다생각한 날이 더 많은 시기.하지만 동시에, 아무 준비 없이 나가는 건또 다른 불안이라는 것도 알고 있다. 이 글은이직을 포기하자는 이야기도 아니고,무작정 참으라는 글도 아니다. 지금 회사를 다니는 동안,내 다음 단계를 준비하기 위해어떤 마인드셋으로 버텨야 하는지에 대한 기록이다.1. 지금 회사는 '목적지'가 아니라 '과정'이다 3년 차가 되면지금 회사가 내 커리..

[ Memoir ] 2025.12.23

[ MEMORY ] 화학 연구원 출신 주니어 개발자 2025년 회고록

INTRO 올해로 세 번째 회고록, 2025년 회고록으로 돌아왔다.작년에 '좀 이른 시기에 쓴다'라고 했던 것이 엊그제 같은데, 벌써 세 번째 회고록을 작성할 때가 되었다.매년 회고록을 쓸 때마다 느끼는 감정이지만, 스스로의 기록을 통해 얼마나 성장하고 변화했는지 확인하는 것은 언제나 신선하고 뿌듯한 경험이다.특히 2025년은 이전의 바쁘고 힘들었던 시간들이 결실을 맺기 시작한 해였기에, 더욱 깊이 있게 돌아보고 기록하려 한다.작년의 나는 시니어 개발자가 되기 위해 서울에서의 삶을 정리하고 대전에서 새로운 도전을 시작했다.그리고 올해는 그 선택이 얼마나 옳았는지 증명하는 시간이었다.'정말 바빴던 한 해'였지만그 바쁨 속에서 나는 내가 원했던 단단함과 전문성을 갖추게 되었다.이전 회고록의 다짐들이 현실이..

[ Memoir ] 2025.12.08

[ Linux ] Rocky Linux 9 – 웹 서버 환경 구축 가이드 (MariaDB · Java 8 · Tomcat)

Intro 안녕하세요. 환이s입니다 👋 오늘은 Docker 기반 Rocky Linux 9 환경에서 Java 8, MariaDB, Tomcat을 설치하고 설정하는 방법을 정리해 보려고 합니다. 보통 실무에서는 VM 기반 CentOS/Rocky Linux를 많이 사용하지만, 테스트 환경이나 로컬 개발 환경에서는 Docker가 훨씬 빠르고 편리합니다. 특히 컨테이너는 “매번 동일한 환경을 쉽게 재현”할 수 있기 때문에, 서버 설정 실습이나 개발 테스트 환경 구축에 매우 유용하죠. 그래서 이번 글은 “VM 없이 Docker만으로 Rocky Linux 개발 환경 만들기”를 목표로 작성했습니다.처음 Rocky Linux 환경을 구성하는 분들도 부담 없이 따라올 수 있도록 명령어와 설정 파일까지 모두 정리해 두었어..

Linux 2025.12.07

조금 느슨해져도 괜찮다는 겨울 – 『행복할 거야 이래도 되나 싶을 정도로』

2025년의 끝자락.겨울 공기가 더욱 차갑게 내려앉는 요즘,저는 여전히 끝나지 않은 기능 개발들을 붙잡으며올 한 해를 동시에 정리하고, 또 버티고 있는 중입니다. 프로젝트는 마무리 단계에 다가온 듯하지만막상 손에 들어온 건 그리 많지 않은 듯한 기분.예상치 못한 에러는 자꾸 모습을 드러내고,마지막 조각 같았던 개발 일정은날씨처럼 점점 더 팽팽하게 얼어붙어 갑니다. 이럴 때면 문득 이런 생각이 들어요. "과연 올해 안에 마무리할 수 있을까?""내가 놓친 부분은 없는 걸까?""내년의 나는 지금보다 더 단단해질 수 있을까?" 겨울은 원래 조용해야 하는 계절인데유독 이 시기가 되면 마음은 더 시끄러워지고,머릿속은 더 복잡해지는 것 같습니다. 아직 끝나지 않은 일들이 주는 압박감,마무리하지 못한 스스로에 대한 아..

[ My Bookshelf ] 2025.12.04

불안 속에서도 멈추지 않기 – 『당신은 결국 무엇이든 해내는 사람』

오늘은 9월 21일, 한 주의 끝자락이자 또 다른 한 주가 시작되기 전의 문턱입니다.늘 이 시점이 되면 지난 시간을 돌아보게 되고, 다가올 시간을 어떻게 채워야 할지 생각하게 됩니다. 마치 숨을 고르고 다시 달리기 시작하기 전, 잠깐의 멈춤 같은 순간이죠. 그런 날에 읽은 책이 바로 김상현 작가의 『당신은 결국 무엇이든 해내는 사람』이었습니다. 서울에서 개발자로 일하며 20대 후반을 보낸 저는, 어느 순간 제 삶이 너무 빠른 속도에 맞춰 돌아가고 있다는 생각이 들었습니다. 남들이 정해놓은 길 위에서, 남들이 정해놓은 속도로 달리고 있다는 기분이었죠. 야근과 프로젝트, 끊임없이 쏟아지는 새로운 기술들 속에서 저 스스로를 챙길 여유가 없었습니다. 그래서인지 1년 전, 대전으로 내려오겠다는 결정을 내렸을 ..

[ My Bookshelf ] 2025.09.21

항로 표지 정보 서비스 운영 시스템 프로젝트 후기

Intro 안녕하세요. 환이s입니다👋이번 프로젝트는 제가 긴급 투입되어 단기간에 진행한 공공기관 프로젝트 3번째 경험입니다. 제한된 시간 안에서 프로젝트 목표를 달성하기 위해 팀과 함께 집중적으로 노력하며, 우선순위를 빠르게 판단하고 효율적으로 작업을 진행하는 역량을 키울 수 있었는데요🙂 짧은 기간 동안 프로젝트를 수행하면서, 실무에서의 문제 해결 능력과 책임감을 발휘하는 경험을 쌓을 수 있었습니다.그럼, 이번 프로젝트를 진행하며 배운 점과 느낀 후기를 정리해 보겠습니다✌️개요 이번 프로젝트는 제가 긴급 투입되어 단기간(약 1개월) 진행한 공공기관 프로젝트 3번째 경험이었습니다. 이전 프로젝트와 달리 이번에는 파견지가 아닌 사무실에서 바로 진행되었고, 제한된 시간 안에서 목표를 달성해야 했기 때문에..

[ Project ]/Team 2025.09.04

[ JPA ] E-commerce 프로젝트 - 지연 로딩과 조회 성능 최적화(주문 조회 API)

Intro 안녕하세요. 환이s입니다👋 이전 포스팅에서는 회원 조회 API를 구현하면서,엔티티를 직접 노출하는 방식의 위험성과 이를 DTO 패턴으로 해결하는 구조적인 설계 방법에 대해 알아보았습니다. 오늘은 그 연장선에서, 주문 조회 API를 실제로 단계별로 구현해 보며JPA에서 자주 마주치는 지연 로딩 문제와 성능 최적화 전략을 하나씩 짚어보려 합니다. 단순히 Order만 조회하는 것이 아니라,연관된 Member, Delivery 정보까지 함께 조회하는 상황에서 어떤 문제가 발생할 수 있는지,그리고 이를 어떻게 해결해 나가는 것이 좋은지 4단계(V1~V4)로 나눠서 하나씩 살펴보겠습니다.조회용 샘플 데이터 추가 이번 예제에서 userA, userB라는 두 명의 회원이 각각 두 권의 책을 주문한 상황을..

[ ORM ]/JPA 2025.07.14

[ JPA ] E-commerce 프로젝트 - 회원 조회 API

Intro 안녕하세요. 환이s입니다👋 이전 포스팅에서 JPA를 활용한 회원 수정 API 구현 과정을 소개한 데 이어, 이번 글에서는 등록된 회원 정보를 조회하는 API를 어떻게 구성했는지 정리해보려 합니다. 그동안 회원 등록과 수정 API를 구현하며, DTO를 통한 계층 분리와 JPA의 변경 감지 기능을 중심으로 살펴보았는데요. 이번에는 회원 목록을 조회할 때, 엔티티를 그대로 반환하는 방식과 DTO로 변환해 반환하는 방식의 차이점, 그리고 실무에서 어떤 방식이 바람직한지에 대해 단계별로 설명해보려 합니다.회원 조회 V1 - 엔티티 직접 반환(지양해야 할 방식) 가장 단순한 형태의 회원 조회 API는 아래와 같이 엔티티를 직접 응답값으로 반환하는 방식입니다. 📌 코드 예시 @GetMapping..

[ ORM ]/JPA 2025.07.09

[ JPA ] E-commerce 프로젝트 - 회원 수정 API

Intro 안녕하세요. 환이s입니다👋 이전 포스팅에서 JPA를 활용한 회원 등록 API 구현 과정을 소개한 데 이어, 이번 글에서는 등록된 회원 정보를 수정하는 API를 어떻게 구성했는지 정리해보려 합니다. 회원 정보 수정은 대부분의 시스템에서 필수적인 기능이며, 단순한 작업처럼 보이지만 HTTP 메서드의 의미, DTO 처리 방식, JPA의 변경 감지 기능 등 고려해야 할 부분이 많습니다. 이번 글에서는 다음과 같은 흐름으로 회원 수정 기능을 구현해 봅니다.Controller - updateMemberV2 회원 수정 요청을 처리하는 컨트롤러 메서드는 @Putmapping을 사용하여 RESTful 한 방식으로 구현했습니다.URL 경로의 id는 수정 대상 회원의 고유 식별자이며, 요청 본문(@Reque..

[ ORM ]/JPA 2025.07.08
728x90
반응형