CS16 [CS] Cross-Origin Resource Sharing(CORS)에 대해 정확하게 알아보자 이 글을 쓰게 된 이유 프론트엔드 개발자건 백엔드 개발자건 웹 개발을 하다보면 CORS를 자주 접할 수 있다. 백엔드 개발자인 나는 단순하게 요청을 받을 수 있는 출처를 설정하는 것이라고만 추상적으로 정의하고 개발을 하고 있었다. 개념이 추상적으로 정의 되어있다보니 에러가 생겨 트러블 슈팅을 할 때 단순하게 해결 될 문제가 복잡해지고 제대로 해결도 안되는 문제가 발생하였다. 이 참에 CORS에 대해서 확실하게 정리해보자! CORS가 왜 탄생했을까? CORS 대해서 본격적으로 알아보기 전에 그 탄생 배경부터 알아보자. 이를 알기 위해서는 CORS의 반대말인 SOP(Same-Origin Policy)에 대해서 알아볼 필요가 있다. SOP(Same-Origin Policy) SOP를 간단하게 정의하자면 '다른.. 2022. 9. 28. [CS] HTTP와 HTTPS 이 글을 쓰게 된 이유 프로젝트를 진행하며 웹캠을 사용할 일이 있었다. 서치를 해보니 웹캡을 사용하려면 꼭 SSL인증서를 받아서 HTTPS를 이용해야한다는 정보를 얻었다. 기존에도 HTTPS가 대충 무엇인지는 알았으나 정확히는 몰랐다. 그러다보니 직접 구현하는데에 어려움을 겪었고 이 참에 정확하게 정리하고자 이 글을 쓰게되었다. HTTP란? HyperText Transfer Protocol의 약자이며 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다. 여기에서 HyperText란 HTML로 생각하면 된다. 즉, HTTP란 Hypertext 인 HTML을 전송하기 위한 통신규약을 의미한다. 요청을 보낼 때 호스트 앞에 http가 있는 것을 많이 봤을 텐데 이는 해당.. 2022. 9. 28. [보안] CSRF 파헤치기 0. 이 글을 쓰게 된 이유 JAVA SPRING MVC를 이용해서 개인 프로젝트를 하던 중에 CSRF 또 만났다. 이전에도 봤던 놈이고 개념을 안다고 생각해서 나름대로 해결을 해서 진행을 하려고 했는데 문득 관연 내가 CSRF에 대해서 완벽하게 알고있나 의문이 들었다. 그리고 지금 CSRF를 피하려고 사용하는 간편한 방법이 정말 보안 상 옳은 것인가에 대한 의문 또한 들었다. 이렇게 넘어갔다가는 나중에 호되게 당할 것 같아서 이 참에 확실하게 집고 넘어가려고 이 글을 작성하게 되었다. 1. CSRF(Cross-Site Request Forgery)가 뭔데 웹 애플리케이션 취약점 중 하나로 사용자가 자신의 의지와 무관하게 공격자가 의도한 행동을 해서 특정 웹페이지를 보안에 취약하게 한다거나 수정, 삭제 .. 2022. 9. 28. [디자인 패턴] 디자인 패턴(Design Pattern)이란? 디자인 패턴(Design Pattern)이란? 소프트웨어 디자인 패턴(software design pattern)은 소프트웨어 공학의 소프트웨어 디자인에서 특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책이다. 소스나 기계 코드로 바로 전환될수 있는 완성된 디자인은 아니며, 다른 상황에 맞게 사용될 수 있는 문제들을 해결하는데에 쓰이는 서술이나 템플릿이다. 디자인 패턴은 프로그래머가 어플리케이션이나 시스템을 디자인할 때 공통된 문제들을 해결하는데에 쓰이는 형식화 된 가장 좋은 관행이다. - 위키백과 - 디자인 패턴이란 개발하면서 생기는 문제들을 먼저 경험한 선배 개발자들이 만들어 놓은 해결책이다. 그래서 우리는 디자인 패턴을 잘 익혀두었다가 비슷한 문제가 발생할 여지가 있을 때 디자인 .. 2022. 9. 28. [디자인 패턴] 싱글톤(Singleton) 패턴 이 글을 쓰게 된 이유 이번 글에서는 디자인 패턴의 종류 즁 하나인 싱글톤 패턴에 대해서 알아보자. 싱글톤 패턴은 디자인 패턴 중 가장 유명한 패턴 중 하나로, OOP를 공부한 사람이라면 알고 있는 패턴이다. 하지만 정작 사용하려고 하면 어슬프게 적용을 하거나 왜 써야하는지 모르는 경우가 많은 것 같다. 이번 글을 통해서 디자인 패턴 관점에서 개념과 역할에 대해 살펴보고, Java를 통해 예시 코드까지 작성해보자. 생성 패턴(싱글톤 패턴의 종류) 생성 패턴은 객체의 생성에 관련된 패턴으로 인스턴스의 생성 절차를 추상화하는 패턴이다. 객체를 생성, 합성, 표현 방법을 시스템과 분리한다. 생성 패턴은 다음과 같은 2가지 특징이 있다. 생성 패턴은 시스템이 어떤 구체 클래스(concrete class)를 사용.. 2022. 9. 28. [디자인 패턴] 전략(Strategy) 패턴 이 글을 쓰게된 이유 이번 글에서는 디자인 패턴의 종류 즁 하나인 전략 패턴에 대해서 알아보자. 전략 패턴은 우리가 코드에서 은근히 많이 쓰는 패턴이다. 하지만 전략 패턴이 정확하게 무엇인지 알고 쓰는 경우가 많다. 이번 글을 통해서 전략 패턴에 대해서 자세하게 알아보고 적절하게 활용할 수 있도록 해보자. 행동패턴(Behavioral Patterns) 이란? 객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴이다. 한 객체가 수행할 수 없는 작업을 여러 개의 객체로 어떻게 분배하며 객체 사이의 결합도 최소화에 중점을 둔다. 패턴을 주로 클래스에 적용하는지 아니면 객체에 적용하는지에 따라 구분되는 패턴이다. 전략(Strategy) 패턴이란? 전략 패턴은 알고리즘을 특정 기준에 따라 분류해 정의하고,.. 2022. 9. 28. 이전 1 2 3 다음