전체 글 52

[인프런] 스프링 입문 | 섹션 3. 회원 관리 예제 - 백엔드 개발

[02. 회원 도메인과 리포지토리 만들기] MemberRepository 인터페이스를 상속받은 클래스이다. 간단한 테스트를 위해 ID는 자동 증가하는 숫자로 설정한다. package hello.hellospring.repository; import hello.hellospring.domain.Member; import java.util.*; public class MemoryMemberRepository implements MemberRepository { private static Map store = new HashMap(); private static long sequence = 0L; @Override public Member save(Member member) { member.setId(++se..

[인프런] 스프링 입문 | 섹션 2. 스프링 웹 개발 기초

[01 정적 컨텐츠] 정적 컨텐츠: 파일을 웹 브라우저에 그대로 전달/표시하는 것 컨트롤러를 먼저 찾고 없으면 html을 찾는다. [02 MVC와 템플릿 엔진] 템플릿 엔진: html 파일을 서버에서 프로그래밍해서 동적으로 바꿔서 내보내는 것. JSP, PHP 등이 속한다. MVC: 효율적인 설계를 위해 모델, 뷰 (템플릿 엔진), 컨트롤러로 역할을 나누는 패턴이다. 우클릭>Copy Path>Absoluth Path를 브라우저에 붙여넣으면, 템플릿 엔진으로 동작하기 전의 파일을 확인할 수 있다. get 방식으로 name 변수의 값을 지정해 주었고, html 파일에 입력한 바와 같이 name 변수의 값이 잘 표시되어 나왔다. 이것은 다음 그림과 같은 메커니즘을 거쳐서, 템플릿 엔진이 동적으로 html 파일..

[인프런] 스프링 입문 | 섹션 1. 프로젝트 환경설정

[01 프로젝트 생성] 원래 이클립스, JDK 20을 쓰지만 강의 수강을 위해 IntelliJ, JDK 11을 설치했다. https://start.spring.io/ 최대한 강의 환경과 비슷하게 선택했다. 프로젝트를 열었을 때, 내 경우엔 처음에 이런 오류가 떴다. 강의 중 강사님이 "기본 설치에 9분이 걸린다" 고 하는데, 뭔가 설치되는 기미가 안 보이면 오류가 있는 것이다. Caused by: BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version 64 at org.gradle.groovy.scripts.internal.DefaultScriptCompilat..

MVC 개발 패턴이란?

MVC 패턴은 디자인 패턴 중 하나이다. 디자인 패턴이란 "소프트웨어 설계 과정에서 발생할 수 있는 일반적인 문제 및 검증된 해결책을 패턴화한 것" 으로, 특정 문제에 대한 일반적인 해결책을 쉽게 적용할 수 있도록 정리한 것이다. (참고: https://refactoring.guru/ko/design-patterns) 디자인 패턴 중 하나인 모델-뷰-컨트롤러 (Model-View-Controller) 개발 패턴은 하나의 프로젝트를 구성하는 요소를 Model, View, Controller의 세 가지 역할로 나누어 다루며, 영문 첫 글자를 따 MVC 패턴이라고 말한다. 다음 그림이 MVC 패턴을 잘 설명하고 있다. 위 그림을 풀어서 설명하자면 이렇다. ①클라이언트가 어떤 요청을 보내면, ②컨트롤러가 모델을..

JSP 세션 유지 안 되는 이유 | Session 값이 null이 되는 이유

JSP를 이용해 회원가입 시스템을 만들어 보고 있다. 회원가입을 구현하고 로그인/아웃 기능을 구현한 다음 내정보 수정을 구현하고 있었다. 그런데 다 잘 되는데 '내 정보 수정' 페이지만 가면 세션이 사라져서 member_id가 null이 되는 것이다.. 엄청 찾아봤는데, 이유는 이 부분에 있었다! 이 글이 결정적이었다. 정말이지 압도적 감사... OKKY - session값이 null이 되는 이유가 뭘까요.. 고수님들의 도움이 간절합니다. 몇일 안고있는 문제입니다. 첫 세션 저장후 메소드에서 getSession 하면 자장된 값이 나옵니다.그 후 다른 메소드에서 getSession하면 null 값이 나옵니다. user로그인하면 메인페이지넘어가서 마이 okky.kr 그러니까 내가 메인페이지에 logout 이..