| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- string
- 인텔리제이
- js
- SpringBoot
- 자바스크립트
- CSS
- 배열
- 테스트자동화
- 자바
- junit5
- javascript
- IntelliJ
- html
- Visual Studio Code
- junit
- list
- vscode
- math
- 정규식
- Array
- HashMap
- 문자열
- 자바문법
- input
- java테스트
- 단위테스트
- 스프링부트
- Eclipse
- ArrayList
- Java
- Today
- Total
목록2026/02 (55)
어제 오늘 내일
지난 시간까지 프로젝트 환경 설정을 모두 마쳤습니다. 이제 드디어 게시판의 핵심 기능을 구현할 차례입니다.개발 용어로는 CRUD라고 하는데요, 각각 Create(생성), Read(조회), Update(수정), Delete(삭제)를 의미합니다. Spring Boot와 JPA를 사용하면 복잡한 SQL 쿼리 없이도 이 기능들을 아주 쉽고 빠르게 구현할 수 있습니다.이번 포스팅에서는 화면(HTML)을 만들기 전에, 데이터를 처리하는 API 서버 역할을 먼저 완성해 보겠습니다.📂 패키지 구조 잡기코드를 작성하기 전, com.example.board 패키지 아래에 다음과 같이 패키지를 미리 나누어 두면 관리가 편합니다.domain.entity : DB 테이블과 매핑되는 클래스domain.repository : D..
지난 시간까지 만든 Hello World는 치명적인 단점이 있습니다.서버를 껐다 켜면 데이터가 다 사라진다는 거죠. (휘발성)데이터를 영구적으로 저장하려면 데이터베이스(DB)가 필요합니다."아, 오라클이나 MySQL 설치해야 하나요? 너무 무거운데..."걱정 마세요. 우리는 H2라는 아주 가볍고 똑똑한 DB를 사용할 겁니다.1. 라이브러리 추가하기 (build.gradle)우리가 처음 프로젝트를 만들 때 '웹(Web)' 기능만 넣었기 때문에, DB를 쓰려면 재료(라이브러리)를 추가해야 합니다.IntelliJ에서 build.gradle 파일을 엽니다.dependencies { ... } 중괄호 안에 아래 두 줄을 복사해서 붙여넣으세요.dependencies { // ... 기존에 있던 implemen..
안녕하세요! 지난 시간까지 이론 공부하느라 고생 많으셨습니다.드디어 오늘, 내 컴퓨터에서 스프링 부트를 실제로 돌려보는 날입니다.보통 프로그래밍을 시작할 때 "환경 설정하다가 지쳐서 포기한다"는 말이 있죠?오늘은 복잡한 건 다 건너뛰고, 가장 빠르고 확실한 방법으로 'Hello World'를 띄워보겠습니다. 딱 5분만 집중해 주세요! 1. 준비물 챙기기요리를 하려면 칼과 도마가 필요하듯, 개발에도 도구가 필요합니다. 딱 두 가지만 설치해 주세요. (이미 있다면 패스!)JDK 17 (Java Development Kit)스프링 부트 3.0 이상을 쓰려면 자바 17 버전 이상이 필수입니다.구글에 'JDK 17 설치'를 검색해서 설치해 주세요. (Oracle 또는 OpenJDK 무관)IntelliJ IDEA ..
스프링 부트 코드를 보면 자바 문법에는 없는 @ 표시가 정말 많이 나옵니다.이걸 '어노테이션(Annotation)'이라고 부르는데요.사전적 의미로는 '주석'이지만, 스프링에서는 '스티커(명찰)'라고 생각하면 이해가 빠릅니다. 1. 어노테이션 = "스프링에게 보내는 편지"우리가 클래스 위에 @Controller라고 붙이는 건, 스프링에게 이런 메모를 남기는 것과 같습니다."스프링아, 이 클래스는 그냥 평범한 자바 파일이 아니야. 내가 '컨트롤러' 역할을 맡겼으니까 네가 알아서 관리해 줘!"이 스티커가 안 붙어 있으면 스프링은 "얘는 뭐 하는 애인지 모르겠네?" 하고 무시해 버립니다.그래서 적절한 스티커를 딱딱 붙여주는 게 개발자의 역할입니다.2. 역할 부여 스티커 (3계층 구조)지난 시간에 배운 '레스토랑..
지난 시간, 우리는 HelloController라는 웨이터 한 명을 고용해서 손님(브라우저)의 인사를 받아주게 했습니다.그런데 만약 손님이 "로그인 해주세요" 라거나 "내 통장 잔고 조회해 주세요" 같은 복잡한 요청을 하면 어떻게 될까요?웨이터(Controller) 혼자서 장부 뒤지고, 계산하고, 보안 확인하고... 과로사할지도 모릅니다.그래서 스프링 부트는 일을 세 명에게 철저하게 나눠줍니다. 이것이 바로 3계층 구조 (Layered Architecture)입니다.1. 역할 분담: 레스토랑의 3인방다시 레스토랑 비유를 가져오겠습니다. 각자의 역할은 절대 섞이면 안 됩니다.① Controller (웨이터)역할: 접수와 서빙.하는 일:손님의 주문(Request)을 받습니다. ("파스타 하나요!")메뉴판에 ..
안녕하세요! 지난 시간에 우리는 "손님이 오면 웨이터(Controller)가 주문을 받는다"는 원리를 배웠습니다.하지만 우리 가게엔 아직 웨이터가 없어서 에러 페이지가 떴었죠.오늘은 드디어 첫 번째 직원(Controller)을 채용하고, 브라우저에 "Hello World"를 띄워보겠습니다.딱 5줄만 짜면 됩니다. 준비되셨나요? 1. 자바 클래스 만들기 (웨이터 채용)가장 먼저 할 일은 주문을 받을 '클래스'를 만드는 것입니다.IntelliJ 왼쪽 탐색기(Project)에서 src/main/java/com.example.demo 패키지를 찾습니다.(주의: 반드시 DemoApplication 파일이 있는 그 패키지 안에 만들어야 합니다!)마우스 우클릭 -> New -> Java Class 클릭.이름 칸에 H..
지난 시간, 우리는 브라우저 주소창에 http://localhost:8080을 입력했고,서버는 Whitelabel Error Page를 보여줬습니다.우리는 그저 엔터 키 한 번 쳤을 뿐인데, 스프링 부트 내부에서는 엄청나게 바쁜 일들이 일어났습니다.이 과정을 아주 유명한 비유인 '레스토랑'에 빗대어 설명해 드릴게요. 1. 스프링 부트 맛집 (Layered Architecture)웹 애플리케이션의 구조는 흔히 3계층(Layer) 구조라고 부릅니다. 이걸 레스토랑으로 바꿔보면 이해가 빠릅니다.손님 (Client): 배고픈 사용자 (브라우저)웨이터 (Controller): 주문을 받고 서빙하는 역할요리사 (Service): 주문받은 요리를 실제로 만드는 역할창고지기 (Repository): 요리 재료를 꺼내오..
안녕하세요! 지난 시간에는 Spring과 Spring Boot의 차이점에 대해 알아봤습니다.오늘은 스프링을 이해하는 데 가장 중요한 핵심 개념 두 가지를 이야기해보려고 합니다.바로 IoC(제어의 역전)와 DI(의존성 주입)입니다.이름만 들어도 벌써 머리가 아프시다구요? 걱정 마세요. 어려운 코드가 아니라 아주 쉬운 '상황극'으로 이해시켜 드리겠습니다. 1. 내가 다 해야 해? (기존의 방식)우리가 평범한 자바 코드를 짤 때를 생각해 봅시다. 여러분이 '치킨 가게' 사장님(개발자)입니다.치킨을 튀기려면 '닭'이 필요하겠죠? 그래서 여러분은 가게를 열 때마다 직접 양계장에 가서 닭을 사옵니다.public class ChickenShop { // 사장님이 직접 닭을 구해옴 (new 사용) priva..
안녕하세요!개발자를 꿈꾸는 분들이라면 '스프링(Spring)'이라는 단어를 수없이 들어보셨을 겁니다.그런데 공부를 시작하려고 검색을 해보면 'Spring'도 있고 'Spring Boot'도 있어서 혼란스럽지 않으셨나요?"나는 초보자니까 근본인 Spring부터 배워야 하나?""아니면 요즘 쓴다는 Spring Boot를 바로 써도 되나?"결론부터 말씀드리면 "지금 시작하신다면 무조건 Spring Boot로 시작하세요!" 입니다.오늘은 이 두 가지가 도대체 어떤 관계인지, 그리고 왜 우리는 지금 Spring Boot를 써야 하는지 아주 쉽고 명쾌하게 정리해 드리겠습니다. 1. 요리로 보는 차이점: "재료 손질" vs "밀키트"가장 쉽게 이해하기 위해 '파스타 요리'에 비유해 보겠습니다.🍝 기존의 Spring..
Git을 사용하다 보면 가장 헷갈리는 것 중 하나가 바로 "서버에서 코드를 가져오는" 이 두 명령어의 차이입니다. 결론부터 말씀드리면, fetch는 '확인만 하기', pull은 '가져와서 합치기'입니다. 1. 한 눈에 보는 차이점 명령어 동작 원리 특징 git fetch 원격 저장소의 최신 이력을 로컬로 가져오기만 함 내 소스 코드는 변하지 않음 (안전) git pull fetch + merge 원격 내용을 가져와서 내 코드에 바로 합침 (편리함) 2. 자세히 알아보기① git fetch (가져오기)서버에 어떤 변화가 있는지 정보만 업데이트합니다. 실제 내 파일 내용이 바뀌지는 않기 때문에 매우 안전합니다."남들이..
