전체 글

IT 블로그입니다.
감바레 오또상~ 목차멱등성과 POST 요청의 문제점PRG 패턴Spring에서 PRG 적용1. 멱등성과 POST 요청의 문제점멱등성(Idempotency)이란 동일한 요청을 여러 번 수행하더라도 서버에 미치는 결과가 동일한 성질을 의미한다. 예를 들어, 조회를 위한 GET 요청을 여러 번 호출해도 데이터가 새롭게 생성되지 않는다.반면 일반적인 상품 등록 POST 요청은 다르다. POST로 상품 등록 후 새로고침을 했을때 모습을 이미지로 표현하면 아래와 같다.3번을 보면 새로고침 시 동일한 POST 요청이 한 번 더 전송되어 상품 등록이 다시 처리되는 것을 확인할 수 있다. 이처럼 동일한 요청을 반복했을 때 상품이 계속 추가되어 서버의 최종 상태가 달라질 수 있으므로 POST는 멱등성이 보장되지 않는다. 즉..
· 인공지능
저희 회사는 사보에 IT 관련 글을 싣는데요,프로젝트 복귀가 무섭게 사보를 작성하라는 지시를 받아 글을 쓰게 되었습니다.나름 관련 문서도 찾아보고 GPT도 열심히 써가며 작성했기에 개인적으로도 남겨놓고자 포스팅하게 되었습니다.글이 너무 별로면 댓글 남겨주시면 비공개로 바꿔버리겠습니다.감사하느무니다. 목차증강 코딩이란?바이브 코딩의 한계증캉 코딩은 바이브 코딩의 한계를 어떻게 뛰어넘는가TDD로 구현하는 증강 코딩 워크플로우SI 개발자에게 증강 코딩이란글을 마치며증강 코딩이란?증강 코딩은 2025년 6월 켄트 벡(Kent Beck)이 공개한 「증강형 코딩: 바이브를 넘어서(Augmented Coding: Beyond the Vibes)」에서 바이브 코딩과 구분되는 개발 접근 방식으로 설명되었다. 증강 코딩..
학무지경 : 배움에는 끝이 없다.(내 인생은 요지경) 목차API Controller의 보편적 형태Annotation 설명1. API Controller의 보편적 형태API를 개발할 경우, 서버단에서는 HTML을 전달하는 것이 아니라, 메시지 바디에 JSON이나 String과 같은 데이터를 전달한다. Controller에서 하나의 매핑만 API로 사용한다고 가정하여 Controller를 만들 경우, 아래와 같은 모습으로 구현할 수 있다.@Controllerpublic class ResponseBodyController { @ResponseStatus(HttpStatus.OK) @ResponseBody @GetMapping("/response-body-json") public HelloData respons..
· Database
벌써 두 번째 프로젝트가 막을 내리네요.2026-01-23 ~ 2026-07-10 목차Trigger란?Trigger 기본 문법Trigger를 사용해야 하는 경우Trigger 사용 판단 기준사용 예시 1. Trigger란?Trigger는 특정 테이블에 INSERT, UPDATE, DELETE 같은 이벤트가 발생했을 때 데이터베이스가 자동으로 실행하는 PL/SQL 로직이다. 예를 들어, 특정 테이블의 데이터가 INSERT 되거나 UPDATE 되었을 때, 그 변경값을 기준으로 다른 테이블의 상태를 자동으로 변경하거나 이력 데이터를 남기는 식으로 사용할 수 있다. ※ Trigger는 자동으로 실행된다는 장점이 있는 만큼, 실행 흐름이 애플리케이션 코드에 명확히 드러나지 않는다는 단점도 있다. 따라서 단순히 "다..
· Error
아ㅏㅏㅏ 쓰기 귀찮아.-In 스타벅스 광주상무점- 목차DuplicateKeyException1. DuplicateKeyException개발을 하고 데이터를 저장하는 과정에서 무결성 제약조건 오류가 발생하는 경우가 있다. 이는 unique 제약 조건에 포함된 데이터를 중복해서 저장하려고 할 때 발생하는 에러다.(ex. primary key 중복 저장) 이 경우, 에러 메시지가 그대로 클라이언트에게 표출되므로, 스프링 프레임워크를 사용할 경우, DuplicateKeyException을 사용해주고 클라이언트에게는 중복 데이터는 저장할 수 없다는 경고창만 띄워주면 깔끔하게 처리된다. ※ 그럼 예외처리는 어느 Layer에서 구현하는게 좋을까?Service Layer에서 하는 것이 좋다. Controller는 요..
Practice makes perfect 목차그리드 날짜 + 시간 데이터 바인딩1. 그리드 날짜 + 시간 데이터 바인딩넥사크로 Grid에서 날짜 데이터를 표시할 때 displaytype을 date로 설정하고 calendardateformat을 지정하면 날짜 형식으로 출력할 수 있다.하지만 데이터가 단순 날짜가 아니라 날짜 + 시간 형태일 경우, 시간 데이터가 00:00:00으로 표시되는 경우가 있다. 실제 사례를 보자.위 설정과 같이 시간 데이터 표출을 위해 calendardateformat을 yyyy-MM-dd HH:mm:ss로 설정했을때, 결과는 아래와 같이 나온다.왼쪽은 넥사크로 화면에서 Ctrl + Shift + Z를 클릭했을때 데이터셋에 들어온 데이터를 확인했을때 모습이고, 오른쪽은 데이터가 실..
사필귀정( 事必歸正 ) 목차요청 매핑(RequestMapping)편리한 축약 애노테이션 1. 요청 매핑(RequestMapping)기본 포맷DispatcherServlet을 정리하면서 살짝 다뤘다. @RequestMapping은 요청 URL과 조건을 핸들러에 매핑하기 위한 정보를 정의하는 어노테이션이다. URL과 핸들러를 매핑하는 기본 포맷은 아래와 같다. @RequestMapping("/hello-basic") public String helloBasic(){ log.info("helloBasic"); return "ok"; } 위 코드를 작성하고 postman을 활용해 http://localhost:8080/hello-basic URL로 send하면 해당 컨트..
실무에서 간단하게 로그를 남기는 법(logging)에 대해서 정리해 보겠습니다. 목차로깅(logging)올바른 로그 사용법 1. 로깅(logging)실무에서는 로그를 확인할 때 System.out.println()이 아닌 log.info와 같은 형식의 코드로 로그를 확인하는 모습을 접할 것이다. 해당 코드는 Slf4j라는 로깅 라이브러리에서 제공해주는 코드이다. 로깅 라이브러리는 Logback, Log4J, Log4J2 등 다양한 라이브러리가 있는데, 그것을 통합해서 인터페이스로 제공하는 것이 Slf4j 라이브러리다. Slf4j는 인터페이스고, 그 구현체로 Logback과 같은 로깅 라이브러리를 선택하면 된다. 위에서 언급한 로깅 라이브러리들은 spring-boot-starter-logging에 포함된..
나는웅쓰
웅쓰네