분류 전체보기 33

7장 게시글 수정하기: Update

7.1 데이터 수정 과정게시판에 작성한 글을 수정하려면 해당 글을 불러와 수정할 수 있는 입력 상태로 만들어야 합니다. 그다음 내용을 입력하고 다시 전송하면 DB에 반영돼 최종적으로 수정됩니다. 데이터 수정 실습은 크게 2단계로 나누어집니다. 1. 만들고 기존 데이터 불러오기2. 데이터를 수정해 DB에 반영한 후 결과를 볼 수 있게 로 리다이렉트하기 먼저 1단계가 어떻게 동작하는지 살펴보겠습니다.(1) 에서 [Edit] 버튼을 클릭합니다.(2) 요청을 받은 컨트롤러는 해당 글의 id로 DB에서 데이터를 찾아 가져옵니다.(3) 컨트롤러는 가져온 데이터를 뷰에서 사용할 수 있도록 모델에 등록합니다.(4) 모델에 등록된 데이터를 에서 보여 줍니다. 그러면 사용자가 내용을 수정할 수 있는 상태가 됩니다. 2단..

스프링부트 2025.01.22

깃 설치 및 환경 설정

맥에 깃 설치하기맥에서는 홈브류(Homebrew)나 맥포트(MacPorts)같은 패키지 관리자를 이용해 깃을 설치합니다. 홈브류 설치하기1. 홈브류 사이트로 이동합니다. 화면 아래 설치 명령을 복사합니다.https://brew.sh/ HomebrewThe Missing Package Manager for macOS (or Linux).brew.sh 2. 맥에서 터미널을 열고 복사한 명령을 붙여 넣습니다. 그리고 Enter를 누릅니다. 3. 맥에서 사용하는 비밀번호를 입력하고 나면 홈브류가 설치되기 시작합니다.  홈브류에서 깃 설치하기1. 맥 터미널에서 다음과 같이 입력한 후 Enter를 누릅니다.$ brew install git 2. 따로 설정하지 않아도 깃이 설치됩니다. 설치가 끝나면 $ 표시가 나타납..

문서 관리자, 깃

깃으로 무엇을 할 수 있을까?깃이 제공하는 핵심 기능은 크게 버전 관리(version control), 백업(backup), 협업(collaboration)으로 나눌 수 있습니다. 1. 버전 관리하기컴퓨터로 문서를 작성한 뒤 수정하는 모습을 상상해 보세요. 원래 내용도 남겨 두고 수정한 내용도 저장해야 한다면 '다른 이름으로 저장'하는 방법을 주로 사용합니다. 그리고 다른 파일과 구별하려고 원래 파일 이름 뒤에 숫자를 붙이거나 문자를 추가하곤 하죠. '초안', '수정', '최종', '진짜 최종' ... 이런 식으로 말이죠. 그런데 1,000개가 넘는 문서를 수정할 때마다 이런 방식으로 저장한다면 어떨까요? 나중에는 어떤 파일에서 어떤 내용을 수정했는지 기억할 수 없을 것입니다. 문서를 수정할 때마다 언제..

6장 게시판 내 페이지 이동하기

6.1 링크와 리다이렉트란보통 웹 게시판을 보면 처음에 가 뜹니다. 여기에서 [제목]을 클릭하면 해당 글의 로 이동하고, [글쓰기] 버튼을 클릭하면 . 새 글을 작성하는 로 이동합니다. 만약 에 있다면 [목록] 버튼을 클릭해 로 돌아갈 수 있습니다. 에 있다면 새 글을 작성하지 않고 [목록] 버튼을 클릭해 돌아갈 수 있고, [전송하기] 버튼을 클릭해 작성한 글의 를 볼 수도 있습니다. 이 장에서는 이러한 게시판 내 페이지 이동을 구현해 봅시다. 앞에서 만든 /articles, 즉 목록 페이지에 링크와 리다이렉트라는 기능을 이용해 구현합니다. 링크(link)란 미리 정해 놓은 요청을 간편히 전송하는 기능으로, 보통 페이지 이동을 위해 사용합니다. HTML의 태그 혹은 태그로 작성하며, 클라이언트가 링크..

스프링부트 2025.01.20

5장 게시글 읽기: Read

5.1 데이터 조회 과정웹 페이지에서 게시글을 등록하면 서버를 통해 DB에 저장됩니다. 이렇게 DB에 저장된 데이터를 웹 페이지에 출력하는 과정은 앞서 배운 다양한 요소 간 상호 작용으로 이로어집니다. 1. 사용자가 데이터를 조회해 달라고 웹 페이지에서 URL 요청을 보냅니다. 2. 서버의 컨트롤러가 요청을 받아 해당 URL에서 찾으려는 데이터 정보를 리파지터리에 전달합니다.3. 리파지터리는 정보를 가지고 DB에 데이터 조회를 요청합니다.4. DB는 해당 데이터를 찾아 이를 엔티티로 반환합니다.5. 반환된 엔티티는 모델을 통해 뷰 템플릿으로 전달됩니다.6. 최종적으로 결과 뷰 페이지가 완성돼 사용자의 화면에 출력됩니다. 데이터를 조회하는 과정에서 각 요소의 역할을 이해했나요? 아직은 와닿지 않을 테니 실..

스프링부트 2025.01.20

4장 롬복과 리팩터링

4.1 롬복이란 롬복(lombok)이란 코드를 간소화해 주는 라이브러리입니다. 개발하다 보면 getter(), setter(),constructor(), toString()과 같은 필수 메서드를 사용하기 마련인데요. 이를 매번 작성하는 것은 생각보다 번거롭습니다. 스마트하지만 게으른 개발자들은 이런 반복을 없애려 했고, 그래서 나온 도구가 바로 롬복입니다. 롬복을 사용하면 필수 코드를 간편하게 작성할 수 있습니다. 또 로깅 기능을 통해 println() 문을 개선할 수 있습니다. 로깅(logging)이란 프로그램의 수행 과정을 기록으로 남기는 것을 말하는데, 일종의 자동차 블랙박스와 같습니다. 이 장에서는 롬복으로 코드를 리팩터링해 보겠습니다. 리팩터링(refactoring)이란 코드의 기능에는 변함이 ..

스프링부트 2025.01.15

3장 게시판 만들고 새 글 작성하기: Create

3.1 폼 데이터란폼 데이터(form data)란 HTML 요소인 태그에 실려 전송되는 데이터를 말합니다. 다들 인터넷 게시판에 글을 써 본적이 있을 것입니다. 내용을 입력하고 [전송] 버튼을 누르면 게시글이 올라가는데요. 태그는 이렇게 웹 브라우저에서 서버로 데이터를 전송할 때 사용합니다.  태그는 택배에 비유할 수 있습니다. 택배를 보낼 때 송장에 수령자와 배송 형태(익일 배송, 새벽 배송)를 적습니다. 태그도 데이터를 전송할 때 어디로(where), 어떻게(how) 보낼지 등을 적어서 보냅니다.  태그에 실어 보낸 데이터는 서버의 컨트롤러가 객체에 담아 받습니다. 이 객체를 DTO(Data Transfer Object)라고 합니다. DTO로 받은 데이터는 최종적으로 데이터베이스(DB, Data..

스프링부트 2025.01.15

인텔리제이에서 한글 깨짐 현상 해결 방법

인텔리제이에서 한글이 깨진 채 출력된다면 파일 인코딩 설정을 UTF-8로 변경해야 합니다. 1. 메뉴에서 File -> Settings를 선택합니다. 왼쪽 목록에서 Editor -> File Encodings를 선택한 후 오른쪽에 Global Encoding, Project Encoding과 Default encoding for properties files를 UTF-8로 설정하고 [Apply], [OK] 버튼을 클릭합니다. 2. 메뉴의 Help -> Edit Custom VM Options를 선택합니다. idea64.exe.vmoptions 편집기가 열리면 맨 아래에 -Dfile.encoding=UTF-8 코드를 추가합니다. 인텔리제이를 종료하고 다시 실행하면 한글 깨짐 현상이 해결됩니다.

IntelliJ 2025.01.15

2장 MVC 패턴 이해와 실습

2.1 뷰 템플릿과 MVC 패턴2.1.1 뷰 템플릿이란뷰 템플릿(View Template)은 화면을 담당하는 기술로, 웹 페이지(View)를 하나의 틀(Template)로 만들고 여기에 변수를 삽입해 서로 다른 페이지로 보여줍니다.1장에서 스프링 부트 프로젝트를 만들 때 머스테치(Mustache)라는 도구를  추가했습니다. 이 도구가 바로 뷰 템플릿을 만드는 도구입니다. 2.1.2 MVC 패턴화면을 담당하는 뷰 템플릿은 간단히 '뷰'라고도 합니다. 뷰는 컨트롤러와 모델이라는 두 동료가 있습니다. 컨트롤러(Controller)는 클라이언트의 요청에 따라 서버에서 이를 처리하는 역할을 하고, 모델(Model)은 데이터를 관리하는 역할을 합니다. 이처럼 웹 페이지를 화면에 보여주고(View), 클라이언트의 요..

스프링부트 2025.01.13