본문 바로가기
반응형

전체 글291

CSRF란, CSRF 동작원리, CSRF 방어방법 CSRF란, CSRF 동작원리, CSRF 방어방법 CSRF란 CSRF란, Cross Site Request Forgery의 약자로, 한글 뜻으로는 사이트간 요청 위조를 뜻합니다. CSRF는 웹 보안 취약점의 일종이며, 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(데이터 수정, 삭제, 등록 등) 을 특정 웹사이트에 요청하게 하는 공격입니다. 예를 들어, 피해자의 전자 메일 주소를 변경하거나 암호를 변경하거나 자금이체를 하는 등의 동작을 수행하게 할 수 있습니다. 특성에 따라, 공격자는 사용자의 계정에 대한 완전한 제어권을 얻을 수 있을 수도 있습니다. CSRF 동작원리 CSRF가 성공하려면, 아래 3가지 조건이 만족되어야 합니다. 1. 사용자는 보안이 취약한 서버로부터 이미 로그인되어 있는 상태.. 2022. 8. 3.
[Spring] Spring에서 Exception 제대로 처리하기, Spring Exception 전역 예외 처리, Spring exception 처리, Spring exception handler, ExceptionHandler, 스프링 예외처리, Spring exception 예외처리, Spring exception Spring에서 Exception 제대로 처리하기, Spring Exception 전역 예외 처리, Spring exception 처리, Spring exception handler, ExceptionHandler, 스프링 예외처리, Spring exception 예외처리, Spring exception Spring에서의 예외처리 방법 Spring에서는 Java에서의 try catch 블록을 사용하는것 외에 예외를 처리할 수 있는 간단한 방법을 제공합니다. 대표적으로 @ExceptionHandler라는 annotation(어노테이션)을 이용하여 예외처리할 수 있습니다. 또한, 이를 프로젝트 전체에 적용하기 위해, @ControllerAdvice라는 annotation 을 사용할 수 있습니다. 이에 대한 .. 2022. 7. 31.
Chrome ERR_UNSAFE_PORT, 크롬 ERR_UNSAFE_PORT 해결방법, 접속불가 Chrome ERR_UNSAFE_PORT, 크롬 ERR_UNSAFE_PORT 해결방법, 접속불가 증상 특정 포트로 사이트를 열때 크롬에서 ERR_UNSAFE_PORT 라는 에러메시지를 발생하면서 사이트 접속이 불가한 상황이 있습니다. 증상은 아래와 같은 화면입니다. 해결방법1 - Windows 1. Google 크롬 아이콘을 마우스 오른쪽 버튼으로 클릭하고 속성을 클릭합니다. 2. 그런 다음에, 아래와 같이 Chrome.exe 바로가기의 대상을 입력하는 부분에 허용하려는 포트를 explicitly-allowed-ports 옵션으로 추가하고, 크롬을 껐다가 재시작하면 정상적으로 접속이 됩니다. --explicitly-allowed-ports=허용하려는포트번호 만일 여러개의 포트를 허용하려고 하면 --exp.. 2022. 7. 23.
[Spring] Spring boot란?, 스프링부트란, 스프링부트와 스프링의 차이, 스프링부트 실행하기 Spring boot란?, 스프링부트란, 스프링부트와 스프링의 차이, 스프링부트 실행하기 spring boot란? 스프링부트란? 이전에 스프링이 무엇인지에 대해 https://devscb.tistory.com/111?category=1025931 에서 살펴보았었습니다. 웹서버 개발을 쉽게 하기위해 탄생한 프레임워크인데요, 개발하다보니 사람들이 스프링도 불편한점이 있다고 생각하게 되었습니다. 바로 수많은 설정파일을 만들고, 설정해줘야하는 불편함이 있었는데요, 이를 비롯한 여러 불편한점들을 개선하고, 여러 편의기능을 넣어서 스프링 부트가 탄생되었습니다. 스프링 부트를 한마디로 표현한다면 "더 개발하기 쉬운 스프링" 이라 표현할 수 있습니다. spring boot (스프링부트)의 특징 1. 스프링 부트는 독립.. 2022. 7. 22.
[Spring] Spring Framework 기본동작 순서 및 구조, 스프링 프레임워크 동작 및 구조, 스프링 프레임워크 구성요소 Spring Framework 기본동작 순서 및 구조, 스프링 프레임워크 동작 및 구조, 스프링 프레임워크 구성요소 Spring Framework (스프링프레임워크) 구조 Spring Framework (스프링프레임워크)에서의 동작처리를 알아보겠습니다. 정확히는 http request를 처리하는 방식에 대한 기본적인 내용을 설명해보려고 합니다. 먼저 전체적인 흐름은 아래와 같습니다. @startuml actor Client database DB component ServletContainer{ component Spring{ component DispatcherServlet component HandlerMapping component Controller component ViewResolver comp.. 2022. 7. 7.
MVC패턴이란, Spring MVC란, Spring MVC 장점, Spring MVC MVC패턴이란, Spring MVC란, Spring MVC 장점, Spring MVC MVC 패턴이란 MVC 패턴이란 Model(모델), View(뷰), Controller(컨트롤러)의 앞글자를 따서 이름지어진 디자인 패턴입니다. 각 컴포넌트는 아래와 같은 역할을 갖고 있습니다. 모델(Model): 애플리케이션 데이터만을 포함하고, 데이터 조작하는 로직을 포함하지 않습니다. 뷰(View) : 모델(데이터)를 사용자에게 표시합니다. 컨트롤러 (Controller): 뷰와 모델 사이에 컨트롤러가 있습니다. 뷰(또는 다른 외부 소스)에 의해 변경요청된 이벤트들을 감지하고, 이러한 이벤트들에 대한 적절한 로직을 실행합니다. 세 가지 구성요소의 관계를 그림으로 표현하면 다음과 같이 표현할 수 있습니다. @star.. 2022. 7. 6.
[Spring] Spring - IoC (Inversion of Control), 스프링 - 제어의 역전이란? Spring - IoC (Inversion of Control), 스프링 - 제어의 역전 스프링의 핵심 기술이자, 많은 참고자료에서 강조되는 것이 바로 IoC (Inversion of Control)라는 기술입니다. IoC가 도대체 무엇이길래 제일 크게 강조하는지 알아보고자 합니다. IoC 뜻 IoC는 Inversion of Control의 줄임말입니다. Inversion은 한국 뜻으로 역전, 전도, 자리바뀜, 뒤집다 등을 의미하며, Control은 제어, 통제, 지배라는 뜻을 의미하니다. 전체 내용을 번역하면 "제어의 역전" 이라고 번역할 수 있습니다. 제어하는 방식이 원래는 어떻길래 스프링에서는 이를 역전시켰다고 했을까요? 일반적으로 소프트웨어 개발을 할때, 프로그램의 제어 흐름을 컨트롤하는것은 개발.. 2022. 7. 6.
[Spring/Java] Java Bean이란, Spring Bean이란, Java bean 유래, Java Beans, 자바빈, 스프링빈, 자바 빈, 스프링 빈 [Spring/Java] Java Bean이란, Spring Bean이란, Java bean 유래, Java Beans 여러 spring 관련 글들을 보면 Bean(빈) 이라는 용어가 등장합니다. 이게 무엇인지 알아보겠습니다. Bean 이름의 유래 Bean이라는 용어는 한국어로 콩이라는 뜻입니다. 갑자기 왠 콩? 일까 싶습니다. 먼저 Java라는 프로그래밍 언어는 인도네시아 Java 섬 커피를 즐겨마시던 개발자에 의해 만들어지게 되었습니다. 그리고 Java관련된 용어로 커피관련된 용어를 사용했지요. 그 중에서 Java 프로그램의 구성요소를 커피콩을 비유해서 Bean이라고 칭했습니다. 또한, Bean을 항아리에 담겠다 라고 해서 최종 빌드된 패키징파일은 .jar파일로 생성되게 됩니다. 마지막으로 재미있는 .. 2022. 7. 4.
[Spring] 스프링 프레임워크(Spring framework) 설치하기, spring framework 파일 다운로드, spring 설치 방법, spring 설치방법, 스프링 설치 설정, 스프링 설치방법, 스프링 셋업 종류, 스프링 프레임워크 설치 [Spring] 스프링 프레임워크(Spring framework) 설치하기, spring framework 파일 다운로드, spring 설치 방법, spring 설치방법, 스프링 설치 설정, 스프링 설치방법, 스프링 셋업 종류, 스프링 프레임워크 설치하기, 스프링 프레임워크 다운로드 Java 로 웹 서버 개발을 쉽게 도와줄 수 있는 스프링프레임워크(spring framework) 설치방법에 대해 알아보겠습니다. spring 에서는 spring initializer라는 설정값을 입맛대로 커스터마이징을 하여 스캐폴딩 된 프로젝트를 다운로드 1. spring framework 의 공식홈페이지인 https://spring.io 에 접속을 합니다. 2. 홈페이지의 상단의 Projects에 마우스 커서를 올리고, .. 2022. 7. 2.
fiddler(피들러) 사용법, fiddler classic 사용법, 친절한 fiddler 사용법, fiddler 기본 사용법, fiddler https나오게 피들러는 네트워크 유틸 프로그램으로, 설치된 사용자의 pc에서 패킷을 확인하고 디버깅을 도우는데 쓰이는 프로그램입니다. 피들러를 다운로드하려면 메일주소를 입력해야합니다. 하지만, 아래 링크를 사용하시면 메일주소 입력하지 않고도 다운로드 가능합니다. https://devscb.tistory.com/108 fiddler를 다운받으셨을테니, fiddler 사용법을 알아보겠습니다 fiddler 시작하기 fiddler를 실행하면 아래 스크린샷과 같은 화면이 뜨게 됩니다. 그 중에서 왼쪽 패널을 보시면 현재 컴퓨터에서 통신하고 있는 서버들의 주소들이 보이게 됩니다. 웹브라우저를 띄워놓고 홈페이지들을 들어가보면 여러 주소들이 계속 추가 되면서 스크롤이 계속 늘어나는것을 확인할 수 있습니다. 브라우저를 키고 아래와 같.. 2022. 7. 2.
code bad smell - 긴 switch 문과 polymorphism을 사용한 refactoring 기법 code bad smell - 긴 switch 문과 polymorphism을 사용한 refactoring 기법 switch 문을 잘 사용한다면 나쁘지 않습니다. 또한, 어쩔 수 없이 switch 문을 쓸 경우가 생길 수 밖에 없는 경우가 존재합니다. 하지만 switch 의 case가 너무 많은 경우, 코드를 이해하기 어려운 경우가 있을 수도 있습니다. 예를 들어 아래와 같은 코드를 봅시다. int[] mysort(String type, int[] arr) { switch (type) { case "BubbleSort": //bubble sort 로직 수행. return arr; case "SelectionSort": //selection sort로직수행 return arr; case "InsertionS.. 2022. 6. 29.
code bad smell - 중첩 if문 code bad smell - 중첩 if문 if문의 중첩은 잘만 쓴다면 나쁘지 않습니다. 하지만 대부분의 코드의 경우에는 중첩이 될수록 흐름을 읽기 힘들기 때문에 나쁜 코드가 많습니다. 수많은 if와 else가 있으면 어떤 조건에 대한 else인지 알 수 힘들기도 합니다. 게다가, 유지보수할 경우에는 수정하기도 어려움이 생깁니다. 예를 들어 아래 코드를 보았을때, "error" 라는 글씨가 출력되기 위한 조건이 무엇일까요? function check(first, second, third, fourth){ if( first == true ) { if( second == true ) { if( third == true ) { if( fourth == true ) { return 'OK'; } else { r.. 2022. 6. 27.
반응형