본문 바로가기

기록

(96)
[Spring] @RequestBody와 @ResponseBody @RequestBody와 @ResponseBody는 Spring에서 컨트롤러를 구현할 때 사용하는 어노테이션이다. 두 어노테이션은 모두 웹 페이지와 Java가 통신할 때 객체를 변환하는 역할을 한다. 다음은 두 어노테이션의 차이점이다 @RequestBody : HTTP 요청의 body 내용을 Java 객체로 변환할 때 사용한다. @ResponseBody : Java 객체의 내용을 HTTP 요청의 body로 변환할 때 사용한다. * 비동기 처리 방식 RequestBody와 ResponseBody는 모두 비동기 처리 방식이다. 비동기 처리방식이란, 새로고침 없이 이루어지는 동작이다. 따라서, 서버와 클라이언트 통신 본문(body)에 데이터를 포함해야 한다. 대표적인 방식에는 JSON이 있다. * JSON :..
[Spring Security] CSRF 취약점 Spring Security를 사용하는 경우 간혹 Ajax에서 POST 메소드 호출을 할 때 403 Forbidden 에러가 발생한다. 확인해봤지만 mapping된 url의 문제도 아니고, 데이터의 문제도 아니었다. 이 경우 CSRF의 토큰을 넘겨주지 않아 발생한 오류일 확률이 매우 높다. CSRF (Cross Site Request Forgery) : 사용자의 의지와 관계없이 공격자의 의도로 서버에 특정 요청을 하는 것 예를 들어, 사용자가 서버에 요청을 보낼 때, 공격자가 페이지를 인터셉트하여 위조 후 다른 요청을 서버에 보내는 경우이다. 유사한 공격으로 XSS (Cross Site Scripting)이 있는데, XSS는 클라이언트를, CSRF는 서버를 공격한다는 차이가 있다. 이러한 공격을 예방하기..
[Spring] [xX][mM][lL]"과 일치하는 처리 명령 대상은 허용되지 않습니다. 문제 상황 xml문자열에 대한 파싱을 할때 발생하는 오류이다. "[xX][mM][lL]"과 일치하는 처리 명령 대상은 허용되지 않습니다. 문제 해결 xml파일의 선언 앞의 공백, 줄띄우기 등을 모두 제거한다.
[프로그래머스] 타겟 넘버 programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 문제 풀이 모든 경우의 수를 탐색하며 numbers 내의 수를 더하고 뺐을 때 target값이 나오면 answer++를 하여 결과를 도출한다. 코드 class Solution { static int answer = 0; public int solution(int[] numbers, int target) { dfs(numbe..
[프로그래머스][그리디] 체육복 programmers.co.kr/learn/courses/30/lessons/42862 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr 문제 풀이 1. lost배열에 있는 학생은 -1로, reserve가 있는 학생은 ++를 해주어 2차원 배열을 생성한다. * 1, 또는 -1을 넣지 않고 ++과 --를 해주는 이유는 lost와 reserve에 같은 학생이 들어있을 경우 고려하기 2. lost를 최소화하기 위해 lost의 길이만큼 루프를 만들어 채울 수 있는지 확인한다. 3. lost를 채울 수 있다면 result..
[Git] No projects found 문제상황 Git에 올라가있는 프로젝트를 import하는 중에 No projects found 오류 / 경고가 발생했다. 해결방법 gitignore 파일에 .project와 .classpath 파일이 포함되어 해당 파일이 git에 올라가지 않아ㅇㅇㅇㅇ 생기는 오류이다. 파일 commit 및 push할 때 해당 파일을 포함시켜 올리거나, IDE에서 general로 git 받고 프로젝트 우클릭 - Configure - Convert to Maven Project 를 누르면 해결된다.
[IntelliJ] Github 연동 1. 프로젝트 작업 프로젝트를 생성하고 작업을 진행한다. 2. 로컬 저장소 생성 VCS - Git 저장소 생성을 클릭하여 로컬 저장소를 생성한다. 3. github 주소와 연결 Git - 원격 관리를 누르고 url을 등혹한다. 3. 로컬 저장소에 commit 및 push 작성한 파일들을 커밋 및 푸시한다. (위에서는 이미 커밋을 해서 커밋 할 내용이 없도록 나왔다.)
[Oracle] 지원되지 않는 문자 집합(클래스 경로에 orai18n.jar 추가): KO16MSWIN949 오류 내용 There was an unexpected error (type=Internal Server Error, status=500). Error attempting to get column 'ID' from result set. Cause: java.sql.SQLException: 지원되지 않는 문자 집합(클래스 경로에 orai18n.jar 추가): KO16MSWIN949 ; uncategorized SQLException; SQL state [99999]; error code [17056]; 지원되지 않는 문자 집합(클래스 경로에 orai18n.jar 추가): KO16MSWIN949; 해결 방법 ojdbc8.jar에서 사용하는 인코딩 방식이 jdbc에서 사용하는 방식이 아니기 때문에 충돌이 난다고..

LIST