Java 객체지향 게시판 프로젝트 설계 회원가입 → 로그인 → CRUD Spring Security JWT Filter vs Interceptor @Transactional @Column 백엔드 로드맵
오늘은 코드를 작성하기보다, 백엔드 프로젝트를 어떤 순서로 진행해야 하는지를 정리하는 시간을 가졌다.
Java를 다시 복습할지, Spring을 먼저 복습할지 고민했지만 결론은 명확했다.
Spring은 결국 Java 위에서 동작하는 프레임워크이기 때문에, Java 객체지향과 메서드·클래스의 역할을 이해하는 것이 가장 중요하다.
프로젝트는 작은 기능부터 하나씩 완성하는 방향으로 진행하기로 했다.
| 순서 | 기능 |
|---|---|
| 1 | 회원가입 |
| 2 | 로그인 |
| 3 | 로그아웃 |
| 4 | 게시글 작성 |
| 5 | 게시글 조회 |
| 6 | 게시글 수정 |
| 7 | 게시글 삭제 |
기본 CRUD 완성 후, 아래 기능들을 단계적으로 추가한다.
프로젝트 완성 후 React와 연동하여 실제 웹사이트 형태로 구현하고, AWS EC2에 배포하여 외부에서도 접속 가능한 서비스로 완성한다.
로그인 성공 → 새로운 JWT 발급
클라이언트가 토큰 저장
이후 모든 요청의 Authorization Header에 토큰 포함
Filter가 토큰 검증 → 정상 사용자면 Controller로 전달
💡 정리: 로그인할 때마다 새로운 토큰이 생성되며, 만료 전까지는 동일한 토큰을 계속 재사용하는 방식이다.
@Transactional(readOnly = true)를 사용필수 어노테이션은 아니지만, 다음과 같은 제약 조건 설정에 사용한다.
nullablelengthunique오늘은 기능 구현보다 "어떤 순서로 개발해야 유지보수하기 쉽고 확장 가능한 구조가 되는가"를 고민한 하루였다.
무작정 기능을 추가하기보다,
실제 개발 흐름과도 비슷하다는 것을 깨달았다.
이번 프로젝트는 단순한 게시판이 아니라, Java 객체지향 → Spring → Security/JWT → AWS 배포 → 프론트엔드 연동으로 이어지는 하나의 포트폴리오 프로젝트로 발전시켜 나갈 예정이다.