분류 전체보기 105

Swagger 와 Spring Boot 버전 충돌. (Global Exception Handler 도입 이후 Swagger 작동 중단 이슈, Spring Framework 6.2.x 는 springdoc-openapi 2.7.x 이상부터 사용하세요. )

문제 개요프로젝트에서 Global Exception Handler를 도입해서 예외 처리를 구성해서 공통적인 에러처리를 @RestControllerAdvice를 통해 구성했다. 또한 api 문서를 자동화할 수 있게끔 Swagger를 도입했었다. 글로벌 익셉션 핸들러를 도입한 이후 테스트를 해보니 잘 돌아가던 Swagger가 먹통이 되버렸다. 해결엥? 잘 돌아가고 있었는데.. 문제를 해결한 결론부터 말하자면, 이 이슈는 Swagger와 Spring Boot 버전 간의 충돌문제였다. build.gradle에서 swagger 사용을 위한 springdoc-openapi-starter-common 2.5에서 2.7 버전으로 올려주니 무사히 잘 되었다. 그럼 이전에는 됐는데, 글로벌 익셉션을 구현하니까 왜 안됨?우..

[React] 리엑트 핵심정리!

⭐React 작동 흐름1️⃣HTML 진입점 ( index.html ) 브라우저가 HTML을 읽을 때 id="root"인 "div"를 DOM에 생성하고 main.tsx파일을 모듈로 불러온다.2️⃣main.tsx - React 앱 진입점import { createRoot } from 'react-dom/client'import App from './App'createRoot(document.getElementById('root')!).render() document.getElementById('root')로 위 HTML의 div#root를 DOM에서 가져옴createRoot(...).render()는 그 안에 React 앱(컴포넌트 트리의 루트) 를 렌더링3️⃣App.tsx - 최상단 컴포넌트export d..

REACT 2025.05.01

[4/30 TIL] Spring Boot 공부, 이길주님 특강, ORM,JPA에 대해

Spring Boot 실전에서의 예외 처리 방법들을 공부했다. 글로벌 예외 처리를 해도 특별한 경우 예외 처리를 하고 싶을 때의 여러 방법들에 대해 공부했다. Controller에서 직접하는 방법, @RestControllerAdvice(basePackages = “”) 사용방법, basePackageClasses 사용, 어노테이션으로도 가능하다고 한다. 실제 현업에서는 모든 예외처리를 관리하는 글로벌 예외 처리를 구현하고 커스텀하게 구현해야 할 것들은 우선적으로 해야할 것들을 나열하고 관리한다. 구분 설명 예시@RestControllerAdvice전역(Global) 예외 처리기@RestControllerAdvice()@ExceptionHandler특정 예외 처리 핸들러@ExceptionHandler(N..

Kernel360/기록 2025.04.30

[Spring Boot] 직렬화, 역직렬화 해주는 Object Mapper 톺아보자!

Object Mapper (Jackson 라이브러리 사용법)Object Mapper스프링 부트에서 직렬화, 역직렬화 수행해준다. (JACKSON 사용)JSON → DTO ( 역직렬화 )DTO → JSON (직렬화)변수가 아닌 method에 매칭이 된다.Object Mapper 불러오기@SpringBootTestclass DemoApplicationTests { @Autowired // 스프링에서 관리하는 빈들 중에 자동으로 생성되는 ObjectMapper를 가져오겠다. private ObjectMapper objectMapper; // dto를 json으로 바꾸는게 직렬화 @Test void contextLoads() throws JsonProcessingException { ..

Spring/Spring Boot 2025.04.30

[Spring Boot] 응답(response) 만들기!

응답 만들기 4가지 String : 일반 Text Type 응답Object : 자동으로 Json 변환되어 응답, 상태 값은 항상 200 OKResponseEntity : Body의 내용을 Object로 설정, 상황에 따라 HttpStatus Code 설정@ResponseBody : RestController가 아닌곳(Controller)에서 Json 응답을 내릴 때Object 객체 응답DTO@Data@AllArgsConstructor@NoArgsConstructor@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)public class UserRequest { private String userName; private Integer U..

Spring/Spring Boot 2025.04.29

[4/29 TIL] Spring Boot 톺아보기 Day

Spring Boot와 java에 대해 계속해서 궁금한 것들 찾아보며 공부 했던 하루였다.하루의 시간이 너무 부족하다. 시간을 쪼개고 쪼개며 공부하고 있지만 물리적 시간이 너무 부족함을 느낀다. 근데 재밌다. 역시 계속해서 배우고 알아가는 재미가 최고다. 이 맛에 개발자하겠지~ Spring 진짜 방대하다. 방대한만큼 배울 것도 많은 것 같다. Spring Boot로 프로젝트를 해봤지만 하나하나 자세히 보지는 못해서 이번 기회에 좀 자세하게 알아가면서 공부해보자. https://jinsang-2.tistory.com/137 [Spring Boot] 응답(response) 만들기!응답 만들기 4가지 String : 일반 Text Type 응답Object : 자동으로 Json 변환되어 응답, 상태 값은 항..

Kernel360/기록 2025.04.29

[Spring Boot] REST API 사용, DTO

SPRING RESTGETGET으로 원하는 데이터 요청하는 방법 2가지@RequestParam@PathVariable@GetMapping(path="/echo/{message}")public String echo( @PathVariable(name = "message") String msg, @PathVariable int age, // integer, int 중 integer은 null 으로 초기화, int는 0으로 초기화 지금은 int가 맞음 @PathVariable boolean isMan){ System.out.println("echo message:"+msg); return msg;}// @GetMapping(path="/book")public q..

Spring/Spring Boot 2025.04.29

[4/28 TIL] Kernel 360 OT & Spring Boot 톺아보기

이민석 교수님의 OT 강의좋은 개발자란?제품을 만드는 개발자기본을 잘 알고, 잘 만들고, 운영도 해보고 배울 줄아는 개발자회사에서 바로 쓰임 받는 개발자면접에서는 프로젝트를 만드는 과정을 물어본다무엇을 배웠고, 무엇을 회고했고, 리뷰했는지가 중요하다. 회사에서는 내가 만든거를 만들지 않을 것이기 때문에 무엇을 만들었는지는 중요하지 않다. 왜 썼는지에 대한 타당한 이유를 찾아야 한다.결과에 집착하지 말고 과정에 충실하며 배우는 것에 집중해라 !!AI에 대하여..- AI는 단순하고 어려운 일들은 잘하지만 아직 복잡한 일을 잘 못한다. (프론트 같은 경우 커서 ai 사용해서 구현할 거임)- 이전에 AI는 부가적인, 첨가하는 요소였다면 지금은 AI를 잘 쓰기위해 개발을 하는 추세로 변화되고 있다. - 현재 AI..

Kernel360/기록 2025.04.29

소프트웨어 개발 방법론 (Waterfall, Agile)

소프트웨어 개발 방법론이란?소프트웨어 개발 방법론은 소프트웨어를 체계적으로 개발하기 위한 절차와 원칙을 정리한 프레임워크다. 이는 개발 일정 관리, 요구사항 정의, 설계, 구현, 테스트, 유지보수 등을 어떻게 진행할 것인지 정하는 방식이다.과거에는 문서 중심의 전통적인 방법론(예: Waterfall)이 주로 사용되었지만, 현대에는 유연한 방법론(예: Agile, Scrum, Kanban)이 더 많이 사용된다.전통적인 방법론: Waterfall 모델Waterfall 모델이란?Waterfall(폭포수) 모델은 단계별로 순차적으로 진행하는 소프트웨어 개발 방법론이다. 각 단계를 완료한 후에 다음 단계로 진행하며, 이전 단계로 돌아가는 것이 어렵다.Waterfall 개발 단계요구사항 분석(Requirements..

카테고리 없음 2025.03.13

Sync & Async과 Blocking I/O & Non Blocking I/O

I/O 종류네트워크 (socket)filepipe (프로세스 간)device (키보드와 같은 장치 등등)SyncSynchronous : 동기모든 요청과 응답이 일련의 순서를 따른다.작업의 완료 여부를 호출한 측에서 직접 확인하고, 작업이 끝난 후에 다음 작업을 수행함.AsyncAsynchronous : 비동기작업을 요청한 후 즉시 다음 작업을 수행할 수 있으며, 작업이 완료되면 별도의 콜백 함수나 이벤트를 통해 결과를 확인함.비동기 코드 예제import asyncioasync def async_order1(): print("task1 주문을 처리 중... ") await asyncio.sleep(2) # 2초 대기 (하지만 CPU는 다른 작업 수행 가능) return "아메리카노"asy..

CS/Operating System 2025.03.05