개발
Day 33 - JSP
·3분 읽기
이 글은 2026년 04월 16일 작성된 글입니다.
오늘은 CLI 기반 명언앱의 영속성 처리 마무리와 파일 저장 기능, 그리고 JSP와 서블릿 기반 웹 개발의 기초를 정리했다.
1. 파일 저장 테스트 완료
파일 기반 저장소에서 명언을 저장하는 테스트를 통과시켰다.
@Test
void save() {
// 저장 테스트
}- 파일 저장 로직 정상 동작 확인
- 메모리 기반 → 파일 기반으로 확장
2. db 폴더 gitignore 처리
데이터 저장 폴더는 Git 관리 대상에서 제외했다.
db/
- 실행 중 생성되는 데이터는 버전관리 불필요
- 협업 시 충돌 방지
3. ID 증가 로직
명언을 여러 번 등록할 때 ID가 자동으로 증가하도록 구현했다.
WiseSaying wiseSaying = new WiseSaying(++lastId, content, author);- 1번 → 2번 → 3번 순차 증가
- 데이터 식별 안정성 확보
4. 명언 삭제 기능
파일 저장소에서도 삭제 기능을 구현했다.
repository.deleteById(id);- 데이터 삭제 시 파일도 함께 제거
- CRUD 완성
5. 영속성 처리 흐름
이전에는 메모리에만 저장되던 데이터를 파일로 저장하면서 프로그램 종료 후에도 유지되도록 개선했다.
- 메모리 저장 → 프로그램 종료 시 데이터 소멸
- 파일 저장 → 재실행 시 데이터 유지
6. JSON과 Map 변환
데이터를 파일에 저장하기 위해 JSON 형태로 변환하는 구조를 사용했다.
String json = jsonUtil.toJson(map);
Map<String, Object> map = jsonUtil.toMap(json);- 객체 → JSON → 파일 저장
- JSON → 객체로 복원 가능
7. JSP 개념
JSP는 HTML 안에 Java 코드를 넣어 동적인 페이지를 만드는 기술이다.
- 웹 브라우저는 HTML/CSS/JS만 해석 가능
- JSP는 서버에서 실행되어 HTML로 변환됨
- MVC 구조에서 View 역할 담당
8. Tomcat과 웹 구조
Tomcat은 JSP와 Servlet을 실행하는 웹 서버이다.
- Tomcat = 서버(컨테이너)
- 프로젝트 = 그 안에서 실행되는 애플리케이션
비유:
| 역할 | 의미 |
|---|---|
| 톰캣 | 건물 |
| 프로젝트 | 입주자 |
9. Servlet 기초
서블릿은 HTTP 요청을 처리하는 자바 클래스이다.
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
resp.getWriter().append("<h1>Hello</h1>");
}
}- URL 요청 → 서블릿 실행
- HTML을 직접 만들어 응답
10. 파라미터 처리 (웹)
웹에서도 쿼리 파라미터를 통해 값을 받는다.
String danStr = req.getParameter("dan");// /gugudan?dan=5&limit=12- CLI의 Rq와 비슷한 개념
- 문자열로 받아서 필요한 타입으로 변환
11. 개발 환경 설정
-
Tomcat 설치 및 연동
-
Lombok 설정
-
자동 빌드 및 핫리로드 설정
-
코드 수정 → 바로 반영되는 환경 구축
12. gitignore 설정
톰캣과 로그 관련 파일은 Git에서 제외했다.
logs/
*.log
.smarttomcat/
conf/
- 불필요한 파일 관리 제거
- 저장소 깔끔하게 유지
✅ 정리
- 파일 저장소를 도입하면서 데이터가 프로그램 종료 후에도 유지되도록 만들 수 있었다.
- JSON 변환을 통해 객체를 파일로 저장하는 구조를 이해할 수 있었다.
- JSP와 Servlet을 통해 웹 요청과 응답이 어떻게 처리되는지 흐름을 알게 되었다.
- CLI에서 사용하던 파라미터 처리 개념이 웹에서도 동일하게 적용된다는 점이 연결되었다.