728x90
반응형
HTTP 메서드 & REST API 설계 원칙
| 메서드 | 용도 | URL 예시 |
| GET | 조회 | /api/board/{id} |
| POST | 생성 | /api/board |
| PUT | 전체 수정 | /api/board/{id} |
| PATCH | 부분 수정 | /api/board/{id} |
| DELETE | 삭제 | /api/board/{id} |
Spring 주요 어노테이션 정리
| 어노테이션 | 의미 |
| @Controller | 뷰(.html) 반환 |
| @RestController | JSON 응답 API |
| @GetMapping, @PostMapping | 요청 메서드 바인딩 |
| @RequestParam | URL 쿼리 파라미터 |
| @PathVariable | 경로 변수 |
| @RequestBody | 요청 본문(JSON) 객체 매핑 |
| @Autowired | Bean 주입 |
| @Service | 비즈니스 계층 |
| @Repository, @Mapper | DB 접근 계층 |
DTO & Entity & VO
| 타입 | 역할 |
| DTO (Data Transfer Object) | 계층 간 데이터 전달 |
| Entity | DB 테이블 매핑 객체 (JPA) |
| VO (Value Object) | 읽기 전용 또는 뷰 전용 객체 |
MyBatis vs JPA 비교
| 항목 | MyBatis | JPA (Hibernate) |
| SQL 제어 | 수동 작성 (XML/어노테이션) | 자동 쿼리 생성 (ORM 기반) |
| 유연성 | 높음 | 낮음 (복잡 쿼리는 어렵) |
| 러닝커브 | 낮음 | 높음 |
| 실무 적합도 | 공공/SI 강세 | 스타트업/빠른 개발에 강점 |
실무 환경설정
| 항목 | 설정/도구 |
| API 테스트 | Postman / Thunder Client |
| Git 버전 관리 | Git / GitHub |
| 빌드 도구 | Gradle / Maven |
| 배포 도구 | Docker / AWS EC2 |
| 보안 이슈 | CORS, CSRF 대응 필수 |
| 예외 처리 | @ControllerAdvice + @ExceptionHandler |
728x90
반응형