반응형

IT/development 226

INSERT/UPDATE template(feat. 엑셀 CONCATENATE)

엑셀의 CONCATENATE() 함수를 이용해서 간단한 UPDATE template을 만들었다. 그냥 단순히 table명과 업데이트 시 key값, 업데이트 할 컬럼을 입력 받아서 문자열을 이어붙여 UPDATE문을 완성한 뒤 SQL문 확인 후 DB 클라이언트 프로그램에서 실행하면 된다. 아래 동영상을 보면 바로 이해가 될 듯 하다. 예제는 업데이트 1건만 실행했지만 여러개 입력해서 SQL 드래그 후 다량의 업데이트도 가능하다. 사실 다량 업데이트 때문에 만든거다. INSERT QUERY

IT/development 2023.03.05

[java] list의 null 체크(ObjectUtils.isEmpty())

목차 NPE 😂 NPE(NullPointerException)는 java 개발하다 보면 정말 많이 만나는 에러 중 하나이고 Null값인 대상을 가지고 뭔가 하려고 하면 발생하는 에러다. 방지법은 공통모듈을 만들어 항상 null 체크를 하게끔 개발하는게 삽질을 줄이는 길일 듯 싶다. 아래와 같은 상황에서 NPE가 발생한다. userList에 아무것도 할당되지 않은 상태인데 사이즈를 측정하려고 하다니?(미친건가?) List userList = null; log.info("userList => {}", userList.size()); 스프링으로 개발 시 보통 데이터를 list에 담아 화면에 뿌리거나 API 형식으로 클라이언트에 내리거나 할텐데 list가 null이거나 빈값이 담기거나 사이즈가 0인 경우 등등 ..

IT/development 2023.02.12

[spring] vo와 multipartFile 동시에 서버로 전송(feat.@RequestPart)

클라이언트에서 JSON 타입의 데이터와 멀티파트 형식 파일을 동시에 전달 받는 방법을 기록한다. Controller에서 JSON타입의 데이터를 vo로 받고 멀티파트 형식 파일을 받아서 로그만 찍어보겠다. controller package study.lsyrestapitest1.controller.api; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMap..

IT/development 2023.02.08

[java] PKIX path building failed 해결방법(HTTPS 통신 에러)

목차 java에서 외부 사이트에 HTTPS로 통신할 경우 "PKIX path building failed"가 발생할 수 있다. 원인은 여러가지가 있을 수 있지만 내 경우는 해당 사이트의 인증서를 JVM의 인증서 목록에 추가해 줘서 해결 했다. 아래 파일을 다운로드 받아서 아래 절차대로 진행하면 된다.(windows 기준) InstallCert.java 컴파일 😄 다운로드 받은 java파일을 컴파일 한다. 당연히 InstallCert.java파일이 있는 경로로 이동 후 입력해야 한다. javac InstallCert.java 인증서 추출 😘 컴파일 후 클래스가 생성되었으면 아래처럼 인증서를 추출할 사이트 도메인을 parameter로 넣고 실행한다. java InstallCert xxx.xxx.com 아래처..

IT/development 2023.02.01

[devTool] postman으로 파일 전송 테스트

postman으로 파일 전송 테스트(Rest API) 😄 postman을 이용해서 스프링 파일 업로드 테스트하는 방법을 알게되어 기록한다. 그동안은 html으로 form을 만들어서 했었는데.. 😂 방법은 아주 쉽다. 당연히 전송방식은 POST로 선택 Body > form-data > key > File로 선택 > value에 Select Files 선택 시 파일 업로드가 가능하다. 실제로 서버에서 잘 받아지는지 테스트를 해보겠다. 컨트롤러 생성 후 로그를 찍어서 잘 들어오는지만 확인 해보겠다. controller package study.lsyrestapitest1.controller.api; import lombok.RequiredArgsConstructor; import lombok.extern.sl..

IT/development 2023.01.30

[spring] @RequestBody String type 받기

목차 spring에서 @RequestBody로 String type의 변수 받기 스프링 RestFul방식으로 클라이언트에서 데이터를 전달 받을 때 당황했던 경험이 있어 이를 기록한다. 보통 스프링에서 클라이언트에서 전달한 데이터를 Dto나 Vo등의 객체 타입으로 바인딩 시 아래처럼 객체로 전달 받도록 하면 된다. package study.lsyrestapitest1.controller.api; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotati..

IT/development 2023.01.24

[spring/mybatis] Rest API 계층구조(1:N) 객체 조회(feat .쉬운 예제)

목차 역시나 미래의 나를 위해 기록한다. 계층구조 조회가 처음 접하고 익숙해지기 전까지는 좀 어렵다.(물론 지금도 쉬운 건 아니다.) 모든 일이 익숙해지면 아무것도 아닌 게 그전까지는 어려운 법이다. Rest API 계층구조 조회 간단 예시다. 사용자(UserDto) 객체가 도서 객체(BookDto)를 list로 가지고 있는 구조다. 회원과 도서의 관계를 1:N으로 매핑했고 회원이 부모고 책이 자식이다. 아래처럼 한명의 회원이 여러개의 책을 대출할 수 있는 조건 그래서 회원 객체는 도서 객체를 list로 가지고 있어야 한다. 아래 DB 테이블을 보면 회원번호 1번인 천둥의 신 토르가 열혈강호 1권~5권까지 가지고 있다. API니까 당연히 클라이언트에 전달할 객체인 dto와 db 조작시 사용할 객체인 vo..

IT/development 2022.12.25

[springBoot/html] table값 변경 후 DB update(feat.contenteditable)

목차 현재 내부 프로젝트 진행하고 있는 것 중 아래와 같은 요구사항이 있어서 구현을 했고 이를 기록한다. 현재 개발하며 난이도에 상관없이 기록을 하고 있는데 이는 나중에 분명 나의 좋은 자산이 될거라 믿는다. 누군가에겐 쉬운 일이 또 누군가에겐 좌절감을 줄 수도 있기에 좌절을 줄이고 자신감을 늘리기 위함이다. 처음부터 잘하는 사람도 물론 있을 수 있겠지만 그런사람이 그렇게 많지 않다고 본다. 처음엔 어려웠던 게 해보면 나중에 쉬운게 된다. 구글에 존재하면 안해봐서 어려운 것이지 못할 건 없다. 그리고 구글에 없어도 문제를 해결 할 수 있어야 프로다.(구글에 없으면 시간이 더 오래 걸리겠지) 난 아직 부족한 직장인 개발자이기에 평범한 개발자가 되기위해 끊임없이 기록하고 공부할 것이다. 요구사항은 관리자페이..

IT/development 2022.12.17
반응형