chatGPT API 에 대한 고민을 하다 쿠키, 세션 방식에 대해 생각해 볼 수 있는 계기가 생겨 이를 정리해 보고자 한다. 또한, 학원에서 배운 개념에서는 컨트롤러에 비즈니스 로직을 전부 넣고 서비스를 따로 분리한 적이 없었는데, 동기가 알려 주어 컨트롤러에서의 비즈니스 로직 분리에 대한 개념을 알게 되었다. (난 스프링의 스만 알고 있었다는 것을 다시금 알게 되었다) 갑자기 이 이야기를 왜 꺼냈냐면, 나는 기존에서는 컨트롤러에서 모든 비즈니스 로직을 전부 처리했었어야 했기에 당연히 컨트롤러에서 비즈니스 로직을 통으로 처리해서 당연히 컨트롤러에서 세션을 받고 자연스레 처리했는데, 비즈니스 로직을 서비스로 분리하며 세션을 어떻게 처리해야 할지에 대한 고민을 하게 되었다. 이에 대한 이야기는 쿠키와 세션..
김영한 님의 스프링 입문 강의를 전부 듣고, 자바 기초를 다시 다져야겠단 생각이 절실해져 새로운 마음가짐으로 백준 문제 풀이를 시작했다. 오늘부터는 그 유명하다던 남궁성 강사님의 자바의 정석도 정주행해 볼 예정! 하여튼 문제는 여기에서 발생했다. 프로그래머스 0단계에서는 딱히 내가 클래스와 메서드를 지정해 주지 않아도 자동으로 템플릿을 제공해 주었고, 메서드로 매개변수로 받게 해 입력을 설정해 줄 일이 없었는데, 백준에서는 시작점부터 막히게 된 것이었다. 배운 기억은 있지만 굉장히 가물가물했다. (...) 과정이 오래 지나면서 콘솔에서 입력을 받는 것이 아니라 view 에서 전달해 온 정보들을 로직 처리 하는 것에 익숙해져 있었기 때문에, Scanner 사용이 조금 낯설게 느껴졌고 이번 기회에 다시 정리..

김영한 강사님의 스프링 강의 입문을 공부하는 도중, 예문에 문득 의구심이 들면서 헷갈리기 시작한 곳이 있었다. 우선 정해진 가정으로, DB가 정해지지 않았지만 미리 개발을 해야 하는 상황이 와서 DB를 대신하여 HashMap 을 이용했고, 기존 쿼리 insert 역할을 대신 해 줄 save() 메서드에서 생긴 의문이다. package hello.hellospring.domain; public class Member { private Long id; private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } pub..