스프링 MVC 가 어떤 문제를 해결하기 위해서, 어떤 과정을 거쳐서 지금의 모습을 갖추게 되었는지 이해한 내용을 기록해보고자 합니다. 너무 방대하고 어려워서 DispatcherServlet 말만 들어도 스트레스였는데 이게 이해되다니 정말 기쁘네요 ;ㅅ; 멋진 강의 제작해주신 김영한님, 함께 대화하며 학습해준 칙촉, 멋진 테코톡 발표해주신 3기 코기 감사드립니다. HTTP Message 이미지 출처 : https://developer.mozilla.org/ko/docs/Web/HTTP/Messages HTTP 요청과 응답 메시지는 위와 같은 형식으로 이루어진 문자열입니다. 서블릿은 위와 같은 문자열을 파싱해서 HttpServletRequest, HttpServletResponse를 만들어줍니다. 사실 이것..
🤸♂️ 객체지향 생활체조, 왜 지금인가 처음부터 정리하고 싶었으나... 우아한테크코스를 시작할 때부터 객체지향 생활체조를 지키라는 가이드를 받았습니다. 이는 유지 보수하기 좋은 코드를 작성하기 위한 의식적인 연습을 할 수 있는 추상적이지 않은, 아주 구체적인 눈에 보이는 지표로서 아주 큰 역할을 해주었습니다. 처음부터 이 내용에 대해 정리해보고 싶었지만, 왜 이러한 규칙을 지켜야 하는지, 지켰을 때 어떤 장점이 있는지, 객체지향 생활체조를 지켜본 결과 경험한 바가 어떠한지에 이야기할 바가 없었습니다. 레벨 2 마지막 미션이 머지된 오늘, 드디어 오늘 ㅎ 지금까지 8개의 미션을 지나오며 객체지향 생활체조를 경험한 내용을 토대로 정리해보려 합니다. 📚 용어 정리 의사소통의 장애물을 먼저 없애고 시작합시다!..
https://creampuffy.tistory.com/105 SpringBoot에서 오라클 클라우드 Autonomous Databases 접속하기 드디어 오라클 클라우드 계정 권한 설정 완료 로그인이 안되고, 라이브챗에서 계정정보 확인이 안되고, DB생성이 안되고 했던 이유는. 계정 생성 이후 권한 부여 처리가 완료되지 않았기 때문이 creampuffy.tistory.com 이전에 작성했던 오라클 클라우드 DB 인스턴스 접속 방법 글에 대한 문의가 몇몇 있어서 다시 글을 확인해보니.. 다시 한 번 정리해보는 게 도움이 될 것 같아서 다시 정리했습니다. 1. 프로젝트 생성 SpringBoot 2.5.5, Gradle, JDK 1.8, yaml 설정으로 생성하였습니다. 로컬은 WINDOWS 10, 서버는 ..
9월 24일 금요일, 모의 면접을 진행할 기회를 갖게 되었습니다. 부족했던 부분을 복기하며 하나씩 채워가고자 합니다. 1. 가비지 컬렉션이 어떤 원리에 의해 동작하는지 설명해주세요. 현재 진행중인 Scope를 벗어난 변수를 JVM에서 자동적으로 메모리에서 할당하는 것을 의미합니다. (그럼 Class에 field값은 어떻게 되나요? 현재 진행중인 코드가 아니니까 사라지나요?) 음.. 잘 모르겠습니다.. 다시 생각해도 정말 끔찍합니다 ;; 모의 면접 과정임에도 5분 정도 지나자 실제 면접과 다름없는 두려움(?)과 긴장감이 몰려왔습니다. 중간중간 몇번이나 마이크를 음소거하고 얼굴을 감싸쥐고 오열했습니다. 형편없다고 느껴지는 저의 실력과 답변에 괴로웠습니다. 그래서 다시 복기하며 채웁니다. 오늘은! 가비지 컬렉..
문제 상황 토이프로젝트 진행중 파라미터로 전달된 문자열이 유효할 경우에만 수행해야 하는 로직이 있었다. 여기서 의미하는 유효함은 공백을 제외하고 길이가 1이상인 경우를 의미한다. String 클래스에 있는 isEmpty를 사용해봤지만 NPE가 발생해서 내용을 확인해보니, null 체크는 하지 않고 바로 길이가 0인지만 판별함을 알 수 있었다. org.springframework.util.StringUtils#isEmpty String을 파라미터로 전달하면, null체크도 해주고, 길이가 0이 아닌지 체크해주는 메소드가 필요했다. 익숙하게 사용하던 것은 아니지만 스쳐가며 본 기억이 있는 StringUtils 클래스를 활용해보기로 했다. 이 포스팅에서 다루는 StringUtils는 org.springfram..