Backend 4

🙀 log4j 보안 취약점 발견 기념(?)으로 짧게 공부하기

log4j 보안 취약점이 나타난지 벌써 1달 정도가 넘었다. 엄청나게 큰 보안 이슈이다 보니까 빠르게 패치를 끝낸 상황일텐데, 그 상황을 지켜보면서, 내가 모르는게 너무 많아서 아주 짧게나마 공부해보고자 한다. 로그를 찍는다..! 근데 왜 라이브러리로? 로그를 찍을 때, 나는 System.out.println("######## 여기여기 ##########"); 이렇게.. 막 찍었다. 일단 로그를 찍는 라이브러리가 있는지 몰랐다! 그래서 System.out 을 이용하여 나의 로그를 여기저기에 남기고 다녔다. 그러다가 교육을 받으면서 다양한 라이브러리들이 존재함을 알게 되었다. System.out 으로 쓰는 대신에 사용하라고 했다. 근데 '왜?' 인지는 몰랐던 것 같다. '왜'일까? ~와 같은 다양한 이유들..

Backend/JAVA 2022.01.04

(추가중)😱맨날 마주치는 blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource

정말 프로젝트해볼 때 맨날 봤던 이슈다. 그치만 맨날 찾아본다. 그래서 이번엔 정리해본다^^.. 상황 8080번 포트에서 실행 중인 프론트가 8081번 포트에서 실행 중인 서버로 게시물을 작성해 POST 요청을 보냈다. 이슈분석 그리고 원인 예상은 했지만, 안나오길 바랬던 이슈가 나타났다. 바로 CORS 에러이다. 저번에는 S3에 저장된 이미지를 캔버스에서 활용할 때 비슷한 문제가 나타났다. 정말 많이 봤다. CORS가 무엇인지 잠시 살펴보면 좋을 것 같다. CORS가 뭔데? 해결방법 package com.web.backend.controller; import com.web.backend.dto.PostSaveRequestDto; import com.web.backend.dto.PostsResponseD..

Backend/SPRING 2021.07.01

😺 @RestController에서 @RequestBody가 없어도 괜찮았던가? @ResponseBody 였나..?

상황 스프링부트로 백엔드 개발을 진행 중이다. 클라이언트가 게시물을 작성하고 글을 저장 버튼을 눌렀다. 데이터가 담긴 Json 객체를 전달했다. 그리고 나는 에러폭격을 받았다.🥲 문제 서버에서 에러가 발생했다. 에러 내용은 null이면 안되는 값에 null이 들어가고 데이터베이스에 insert 했다는 내용이었다. 나의 서버 코드는 다음과 같았다. 어디가 문제일지 한번 생각해보자. (사실 제목에 답이 있다.) @RequiredArgsConstructor @RequestMapping("/api/v1/posts") @RestController public class PostsController { private final PostsService postsService; @PostMapping("") priva..

Backend/SPRING 2021.06.30

🙌JVM이 무엇이고 자바 코드가 어떻게 실행되는가 (수정,,)

JAVA 실행 과정 JVM을 설명하기 전에 왜 저것을 알아야 하는지를 위해, JAVA 실행 과정을 간단한 사진으로 빠르게 설명하고자 한다. 위 그림과 같이 우리는 MyProgram.java라는 파일에 간단한 소스코드를 작성했다. 이를 실행하기 위해 나는 이클립스에서 CTRL + F11을 눌렀다. 그리고 그 결과가 나왔다. 컴퓨터는 우리가 작성한 JAVA 코드를 읽을 수 있는걸까? 정답은 아니다! 컴퓨터는 자기가 이해할 수 있는 기계어로 작성되어져야 우리가 실행하고자 하는 바를 할 수 있다. 우리가 작성한 자바 소스 코드를 기계어로 변환하기까지 위와 같은 과정이 이루어지는 것이다. MyProgram.java를 컴파일러가 MyProgram.class 바이트 코드로 변환하고 OS에 맞게 설치된 JVM이 컴퓨터..

Backend/JAVA 2021.01.19