[Java & Spring] 백엔드 개발을 위한 게시판 프로젝트 설계 및 인증 흐름 정리

강승규·2026년 8월 4일

핵심 키워드

Java 객체지향 게시판 프로젝트 설계 회원가입 → 로그인 → CRUD Spring Security JWT Filter vs Interceptor @Transactional @Column 백엔드 로드맵


📝 오늘의 학습 요약

오늘은 코드를 작성하기보다, 백엔드 프로젝트를 어떤 순서로 진행해야 하는지를 정리하는 시간을 가졌다.

Java를 다시 복습할지, Spring을 먼저 복습할지 고민했지만 결론은 명확했다.

Spring은 결국 Java 위에서 동작하는 프레임워크이기 때문에, Java 객체지향과 메서드·클래스의 역할을 이해하는 것이 가장 중요하다.

프로젝트는 작은 기능부터 하나씩 완성하는 방향으로 진행하기로 했다.


🚀 개발 순서 로드맵

1단계 — 기본 CRUD

순서기능
1회원가입
2로그인
3로그아웃
4게시글 작성
5게시글 조회
6게시글 수정
7게시글 삭제

2단계 — 심화 기능

기본 CRUD 완성 후, 아래 기능들을 단계적으로 추가한다.

  • Spring Security
  • JWT
  • Filter
  • 권한 (Role)
  • 댓글
  • 좋아요
  • 검색
  • 페이징

3단계 — 배포 & 연동

프로젝트 완성 후 React와 연동하여 실제 웹사이트 형태로 구현하고, AWS EC2에 배포하여 외부에서도 접속 가능한 서비스로 완성한다.


📚 개념 정리

🔐 Spring Security와 JWT의 관계

  • Spring Security는 JWT를 대신하는 것이 아니라, 보안 전반을 관리하는 프레임워크이다.
  • JWT는 그 안에서 사용할 수 있는 인증 방식 중 하나일 뿐이다.

🔑 JWT 인증 흐름

로그인 성공 → 새로운 JWT 발급
클라이언트가 토큰 저장
이후 모든 요청의 Authorization Header에 토큰 포함
Filter가 토큰 검증 → 정상 사용자면 Controller로 전달

💡 정리: 로그인할 때마다 새로운 토큰이 생성되며, 만료 전까지는 동일한 토큰을 계속 재사용하는 방식이다.

⚙️ @Transactional

  • 저장·수정·삭제 작업을 하나의 작업 단위(트랜잭션)로 묶어주는 역할
  • 조회 기능에는 @Transactional(readOnly = true)를 사용

🏷️ @Column

필수 어노테이션은 아니지만, 다음과 같은 제약 조건 설정에 사용한다.

  • nullable
  • length
  • unique

💭 느낀 점

오늘은 기능 구현보다 "어떤 순서로 개발해야 유지보수하기 쉽고 확장 가능한 구조가 되는가"를 고민한 하루였다.

무작정 기능을 추가하기보다,

  1. 기본 CRUD를 먼저 완성하고
  2. 이후 인증과 권한을 적용하는 흐름이

실제 개발 흐름과도 비슷하다는 것을 깨달았다.

이번 프로젝트는 단순한 게시판이 아니라, Java 객체지향 → Spring → Security/JWT → AWS 배포 → 프론트엔드 연동으로 이어지는 하나의 포트폴리오 프로젝트로 발전시켜 나갈 예정이다.

profile
industrial engineer

0개의 댓글