| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 29 | 30 | 31 |
- maxwidth
- node 오류
- 단어단위로떨어지기
- minwidth
- 글자들여쓰기
- 이미지반응형
- legacy-peer
- window 정책변경
- fontawesome
- 정적객체
- XEIcon
- npm install
- 플러그인
- package.json
- Git clone
- git lab clone
- npm install 문제
- 웹아이콘
- slickslider
- 아이콘사용법
- npm start
- node설치
- owlcarousel
- 동적객체
- googleicon
- 그누보드반응형
- MediaQuery
- react npm install
- 의존성문제
- vscode git clone
- Today
- Total
어쩌다 알게 된 ƪ(•̃͡•̃͡ ƪ
useFormik 값이 무얼 뜻하는지 backend에서 찾기 (서버 전송) 본문
📂 Front 소스 : React
1. 내가 찾고 싶은 useFormik의 onSubmit을 살펴서 await를 찾는다
const restRequest = useFormik({
initialValues: {
id: 0,
restType: '',
},
validate: (values) => {},
onSubmit: async (values) => {
const res = await CompanyService.restdayRequest(forms);
if (res?.result) {
// 요청 성공 모달
setOpenSuccessRequestModal(true);
props.reFresh();
} else if (res?.data.message){
// 요청 실패 후 서버에서 에러 메세지를 보내줬을 경우
showNotification(tr('실패 이유: '), res?.data.message + '.', 'danger');
failedRequest();
} else {
// 요청 실패 후 에러 메세지 없는 경우
failedRequest();
}
},
👩💻 const res = await CompanyService.restdayRequest(forms);
CompanyService.restdayRequest(forms)를 호출해서 연차(휴가) 신청 요청을 서버에 보냄
await 때문에 요청이 끝날 때까지 기다린 후 결과를 res에 저장
forms는 서버로 보내는 데이터(연차 신청 정보)
2. CompanyService 를 import 시킨 페이지로 가서 restdayRequest 찾기
📂 ..경로~ /CompanyService.js
/**
* 연차 신청
* @method POST
* @param {OBJECT} restday
* =========================
* @param {INTEGER} companyId
* @param {INTEGER} restdayId
* @param {STRING} memo
* @param {DATE} createdAt
*/
restdayRequest: (restday) => _post2('/bini/restday-request', restday),
👩💻 @method POST
HTTP POST 방식으로 요청을 보냄.
👩💻 @param {OBJECT} restday
함수의 인자는 객체(restday) 형태입니다.
👩💻 객체 속성:
companyId → 회사 ID (정수)
restdayId → 연차 종류 ID (정수)
memo → 메모 (문자열)
createdAt → 생성일 (날짜)
👩💻 restdayRequest: (restday) => _post2('/attend/restday-request', restday),
restdayRequest 함수 정의
연차 신청 데이터를 서버에 POST 요청으로 보내는 함수
** 사용법
restdayRequest({ companyId: 1, restdayId: 2, memo: '휴가', createdAt: '2025-11-28' })
** 내부 동작
_post2()라는 함수를 호출합니다.
첫 번째 인자: '/attend/restday-request' → API 경로(서버 주소 + 엔드포인트)
두 번째 인자: restday → 서버에 보낼 데이터(JSON 형태)
📂 Backend 소스 : Java
3. /restday-request 전체 검색
@PostMapping(
value = "/restday-request",
consumes = { MediaType.MULTIPART_FORM_DATA_VALUE },
produces = { MediaType.APPLICATION_JSON_VALUE }
)
public ResponseEntity<ResponseDto<Object>> restday2(@ModelAttribute("request") RequestDto dto) {
return ResponseDto.getResponse(HttpStatus.OK, requestService.restday2(dto));
}
1. Spring Controller의 POST 요청 핸들러
👩💻 @PostMapping("/restday-request")
/restday-request 경로로 POST 요청이 들어오면 호출됨
👩💻 consumes
클라이언트에서 보내는 데이터 타입(multipart/form-data)
👩💻 produces
서버가 반환하는 데이터 타입(application/json)
2. 파라미터
👩💻 @ModelAttribute("request") RequestDto dto
클라이언트에서 보낸 데이터를 RequestDto 객체로 받음
3. 반환
👩💻 ResponseEntity<ResponseDto<Object>>
HTTP 상태와 JSON 형태 데이터를 반환
실제 로직은 requestService.restday2(dto)가 처리함
4. ResponseDto 타고 그 페이지로 들어가기
ResponseDto란?
서버가 클라이언트에 데이터를 보낼 때 통일된 형식으로 감싸주는 객체
'개발 > 🟦 React' 카테고리의 다른 글
| 다국어 처리 useTranslation() 훅 사용 (0) | 2025.12.03 |
|---|---|
| useRef로 resize width 계산 후 class 넣기 (0) | 2025.12.01 |
| <Portal>이란? _ 보통 모달을 많이 씀 (0) | 2025.11.26 |
| 컴포넌트의 옵션 props 기본 지정_컴포넌트에 지정하면 안되나? (1) | 2025.11.25 |
| 컴포넌트와 함수 선언 순서, 실행 순서_코드리뷰 (0) | 2025.11.20 |