본문 바로가기
728x90

전체 글199

스프링부트x리액트 '카카오 로그인 하기(소셜 로그인 )' 카카오API+JWT+OAuth2 [1] 스프링부트x리액트 카카오 로그인 구현하기(이론) 해당 포스팅에는 구현하기 전 생각한 구조에 대한 정리 입니다. 구현 예제는 다음 포스팅에서 이어집니다. ✅ 카카오 로그인(소셜 로그인) 구조 간단하게 설명하자면 다음과 같다. 프론트엔드에서 로그인 -> 로그인 후 얻은 accessToken 으로 사용자 정보 가져오고 -> JWT 토큰 생성하여 다시 프론트엔드에 전달 -> 프론트엔드는 이 JWT 토큰으로 사용자 정보 등 체크. 이 과정을 조금 자세히 정리해보자. . . 이에 대한 구현 포스팅은 다음 게시글 을 참고해 주세요! 2022. 4. 26.
스프링에서 왜 서비스 계층을 나눌까? 스프링의 계층과 계층의 역할을 무엇인지, 프로젝트시 패키지를 어떻게 나누는 것이 좋은지에 대해 정리해본다. 스프링의 계층은 Presentation Layer, Business, Layer, Data Access Layer 크게 3개로 나눌 수 있다. 1) 프레젠테이션 계층 - 브라우저상의 웹 클라이언트의 요청 및 응답을 처리 - 서비스계층, 데이터 엑세스 계층에서 발생하는 Exception을 처리 - @Controller 어노테이션을 사용하여 작성된 Controller 클래스가 이 계층에 속함 2) 서비스 계층 - 애플리케이션 비즈니스 로직 처리와 비즈니스와 관련된 도메인 모델의 적합성 검증 - 트랜잭션 관리 - 프레젠테이션 계층과 데이터 엑세스 계층 사이를 연결하는 역할로서 두 계층이 직접적으로 통신하.. 2022. 4. 25.
React json 형태의 [object Object] 출력하기 React에서 json 형태의 object 변수(responseObj)를 alert나 console.log로 찍고싶을때 alert(responseObj); 로만 찍으면 [object Object] 라고 나온다. responseObj의 내용을 알고 싶다면 alert(JSON.stringify(responseObj)); 라고 찍어주면 된다. [ #리액트소설 : 1 편 : #Object씨의_속마을_모르겠어.. ] 등장인물 소개 에반 오브젝트(Evan object): 프론트엔드 시니어 개발자 / 34살 오스틴 콘솔(Austin console): 프론트엔드 주니어 개발자 / 28살 스트링파이 제이슨(stringify json): 프론트엔드 신입 개발자 / 26살 내용 [ 오브젝트를 좋아하는 콘솔. 오늘도 먼저 말.. 2022. 4. 21.
Ambiguous mapping found. Cannot map "Controller 이름" Ambiguous mapping found. Cannot map "Controller 이름" 에러 메시지: Ambiguous mapping found. Cannot map 'Controller의 이름' bean method 원인: Controller에서 @RequestMapping 이름이 중복되서 나타나는 에러 해결: 중복된 @RequestMapping 이름을 변경해주면 해결. 2022. 4. 21.
React 컴포넌트 호출시 유의사항 - PascalCase React 공부 중, 다음과 같은 에러가 발생했다. react-dom.development.js:67 Warning: is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements. PascalCase를 사용하라는 말인데, 이는 대문자를 사용하라는 것이었다. 2022. 4. 19.
Session Hijacking 이란? 👾 Session Hijacking 이란? HTTP Session Hijacking 이라는 공격 기법은 웹 브라우징시 세션 관리를 위해 사용되는 Session ID를 스니핑이나 무작위 추측 공격(brute-force guessing)을 통해서 도용하는 기법이다. 간단히 말하자면, 공격자가 인증 작업 등이 완료되어 정상통신을 하고있는 다른 사용자의 세션을 가로채서 별도의 인증 작업 없이 가로챈 세션으로 통신을 계속하는 행위이다. 먼저 이러한 공격에 대한 배경지식으로 HTTP 프로토콜의 특성 및 Session ID을 알아보자. 0. HTTP 프로토콜의 특성 HTTP는 기본적으로 비연결유지(stateless) 프로토콜이다. 따라서 웹 사이트 로그인 후 다른 페이지 방문시마다 매번 로그인해야 하는 불편함이 있는.. 2022. 4. 18.
웹 보안🏴‍☠️ Cross-Site Scripting(XSS) 세션 탈취 웹 보안 Cross-Site Scripting(XSS) 세션 탈취 예제 📍 순서 1. get.php 생성. 2. 값 테스트 3. 글쓰기 쓰기 전에 4. 서버 재시작 5. 세션 값 확인 * 80040e10 에러 이유 & 해결방법: 이렇게 하면 에러가 난다. 이유는 얘가 ' 작은 따옴표 인식을 못하기 때문.. 그래서 전부 " 쌍따옴표로 바꿔주면 해결된다. 혹은 그냥 글을 쓰고, 수정하기로 다시 쓸 때 작은 따옴표를 넣어줘도 되더라. 2022. 4. 18.
int와 Integer 차이 (Primitive 자료형과 Wrapper 클래스 관계) int 와 Integer 차이 (Primitive 자료형 - Wrapper 클래스 관계) 1. Wrapper 클래스 자바의 자료형은 크게 기본 타입(primitive type)과 참조 타입(reference type)으로 나뉜다. 기본 타입은 byte, char, short, int, long, float, double, boolean 등이 있고 참조 타입은 class, interface 등이 있는데, 프로그래밍을 하다 보면 기본 타입의 데이터를 객체로 표현해야 하는 경우가 종종 있다. 이때 기본 자료타입(primitive type)을 객체로 다루기 위해서 사용하는 클래스들을 래퍼 클래스(wrapper class)라고 한다. 래퍼 클래스는 java.lang 패키지에 포함되어 있으며, 아래와 같이 기본 타.. 2022. 4. 15.
백준 1476, 날짜계산 (자바/java) 백준 1107 리모컨 (자바/java) 문제 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타내는 수를 E, 태양을 나타내는 수를 S, 달을 나타내는 수를 M이라고 했을 때, 이 세 수는 서로 다른 범위를 가진다. (1 ≤ E ≤ 15, 1 ≤ S ≤ 28, 1 ≤ M ≤ 19) 우리가 알고있는 1년은 준규가 살고있는 나라에서는 1 1 1로 나타낼 수 있다. 1년이 지날 때마다, 세 수는 모두 1씩 증가한다. 만약, 어떤 수가 범위를 넘어가는 경우에는 1이 된다. 예를 들어, 15년은 15 15 15로 나타낼 수 있다. 하지만, 1년이 지나서 16년이 되면 16 16.. 2022. 4. 11.
728x90