본문 바로가기

전체 글

(94)
내 프로젝트에 Docker가 정말 필요했을까? 서론 요즘의 개발 환경에서 Docker는 매우 자연스러운 도구로 자리 잡았다. 몇 가지 명령어만으로 컨테이너가 생성되고, 동일한 환경이 유지되며, 배포 과정도 단순화된다. 이러한 편의성으로 인해 Docker의 본질을 잊거나 무시하고 무작정 사용하는 경우가 많다. 그러나 프로젝트 규모와 특성을 고려하지 않고 Docker를 도입하는 것은 불필요한 복잡성을 야기할 수 있다. 특히 단일 서버에서 단일 Java 애플리케이션(Spring 등)만 운영하는 경우, Docker의 도입 필요성을 재검토할 필요가 있다. Docker의 장점을 하나하나 반박하고 수용하며 내 프로젝트에 Docker 도입이 적절한지 판단하는 시간을 가져 보자. 일반적인 소규모 프로젝트를 가정한다.1. 단일 EC2 (aws를 사용한다고..
우아한테크코스 7기 레벨 2 회고 메타인지와 성장우테코에 오기 전, 스프링을 사용해 프로젝트를 한 경험이 두 세번 있었다.레벨 2를 시작하며 큰 기대를 품고 있었다. 스프링을 어느 정도 깊이로 학습하게 될 지 궁금했고, 대단한 걸 배울 수 있으리라 생각했다.그러나 레벨 2는 초심자를 위한 레벨이었고, 주인공은 내가 아니었다.미션 요구사항과 구현 수준은 이미 습득했다고 생각하는 것들이었다. 사용해 본 것과 아는 것은 다르다 이 사실을 망각한 채 "나는 다 아는데..." 라고 말하며 오만한 생각을 했다.이미 안다고 생각하니 미션이 귀찮게 느껴졌고, 하기 싫어졌다. 월요일 마감인 미션을 일요일에 시작한 적도 있었고, 테스트 코드를 짜지 않았던 적도 있었다. 이런 생각이 반복되다 보니 캠퍼스에 와서 할 게 없었다. 기술적 고민이 없으니 토론도 ..
@ResponseBody VS ResponseEntity Spring을 사용해 RESTful 서버를 개발할 때, 많은 사람들은 일반적으로 다음과 같이 Controller를 개발한다.@RestController 어노테이션을 통해 Controller 클래스 작성.ResponseEntity를 반환하는 메서드들 작성.왜 그렇게 할까?왜 @Controller 가 아닌 @RestController 어노테이션을 붙이는지 생각해 본 적이 있는가?@RestController 에는 @ResponseBody 가 붙어 있어서? 메서드가 응답하는 값을 JSON으로 쓰려고?정말 그럴까?그렇다면 메서드가 반환하는 ResponseEntity 클래스 자체가 JSON으로 쓰여야 하는 것 아닌가? ResponseEntity를 반환하는데? 오늘은 이 질문들에 대한 답을 알아가보자 한다. 배경지..
Json 은 View 가 아니다 (@ResponseBody 가 붙은 핸들러는 어떻게 응답 바디를 구성할까?) 제목을 보고 의아함을 느낀 독자가 있을 것이다."Json 도 Response Body 에 들어 있는데, 사용자에게 무언가를 보여 주기 위한 정보니까 View 아닌가...?""View 를 위해 사용되는 데이터니까 View 아닌가...?"등등, 많은 의문이 들 수 있다고 생각한다. 관심을 끌기 위해 자극적으로 제목을 지었다.지금부터 다룰 주제에 적합한 제목은 사실“Spring MVC 관점 에서 JSON 응답은 View 가 아니다!“ 이다.지금부터 이를 증명하고자 한다. 이 여정은 한 의문에서 시작되었다 View 의 렌더링은 핸들러가 반환하는 ModelAndView 를 통해 이루어진다.@ResponseBody 가 붙은 핸들러는 어떤 ModelAndView 값을 반환할까? 1. DispatcherSer..
우아한테크코스 7기 레벨 1 회고 회고란?회고란 과거를 돌아보고 그 경험에서 배운 점을 정리하는 것을 말한다.회고는 개인의 성장과 조직의 발전을 위해 중요한 활동이다. 우아한테크코스 7기 레벨 1을 돌아보며 회고록을 작성해보고자 한다. 토론 우아한테크코스에 오기 전에는 혼자 공부하고 의사결정을 내렸기 때문에, 토론 기회가 없었다. 고립되어 있다 보니 올바르게 성장하고 있는지 알 수 없었고, 시간 가성비가 좋지 않았다. 누군가와 함께 소통하며 공부하고 싶다는 갈증이 컸다. 레벨 1 데일리 크루들과 말을 트게 되면서 이 갈증을 마음껏 해소했다. 적극적으로 토론하며 많은 것들을 배웠다. 1. 모든 논리를 증명하고 팩트만 비교하는 과정에서 자바를 깊게 파볼 수 있었다. 두루뭉실하게 알고 있던 개념을 끝까지 파고 들어가는 시간을 가졌다.2. ..