본문 바로가기

스프링에서 context에 대한 이해 1. context란? 번역하면 문맥, 맥락이지만, 직관적으로 이해하자면 메모리에 로딩된 정보 덩어리라고 볼 수 있다. 단순한 메모리정보가 아니라 서로 연관성을 갖는 정보들끼리의 묶음이라고 볼 수 있다. 2. servlet-context 하나의 서블릿이 메모리에 로딩될때 연결,포함된 각종 설정정보들, 변수들, 함수들이 서블릿 바운 더리내에서 이해할 수 있는 묶음영역으로 메모리에 올라온다고 보면 된다. 서블릿 컨테이너(Apache Tomcat)가 시작되면, 해당 서블릿 컨테이너는 모든 웹 어플리케이션들 을 배포(deploy)하고 로드(load)하면서 ServletContext를 한번 생성하여, 서버의 메모리에 올라간 다. 3. servlet-context.xml, root-context.xml, web.x..
스프링 시큐리티란? 1. 스프링 시큐리티란? 아이디와 비밀번호를 입력해서 로그인하여 사용자를 인증(Authentication)하고, 로그인 후 프로그램의 각각의 기능 대한 권한(Authorization)을 부여 하는 기능을 구현한 프레임워크 2. 보안 관련 용어 1) 접근 주체(Principal) : 보호된 대상에 접근하는 유저2) 인증(Authentication) : 현재 유저가 누구인지 확인하는 과정( 예: 로그인 )3) 허가,인가(Authorization) : 인증 된 상태에서 인증 주체가 어떤 서비스나 기능을 사용할 수 있는지에 대한 자격부여
프로세스(process)와 스레드(thread) 1. 프로세스(process)란?프로세스(process)란 간단히 말해서 ‘실행 중인 프로그램(program)’이다. 프로그램을 실 행하면 0S로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 된다. 즉, 사용자가 작성한 프로그램이 운영체제에 의해 메모리 공간을 할당받아 실행 중인 것을 말한다. 프로세스는 프로그램을 수행하는 데 필요한 데이터와 메모리 등의 자원 그리고 쓰레드로 구성되 어 있다.2. 스레드(thread)란?스레드(thread)란 프로세스(process) 내에서 자원을 이용해서 실제로 작업을 수행하는 주체를 의미 한다. 즉, 하나의 프로세스 내부에서 독립적으로 실행되는 하나의 작업 단위를 말한다. 쓰레드를 프로세스라는 작업공간(공장)에서 작업을 처리하는 일꾼으로 생각하면 이해하기 쉬..
git 충동해결방법 1. pullrequest를 했을때 다음과 같은 오류가 난다면 2. 오류 내용 3. 소스트리에서 충돌해결방법 test브랜치에서 master로 병합을 원할때 master 쪽에 체크아웃된상태에서 test브랜치 오른쪽 클릭후 현재 브랜치로 test병합을 눌러준다. 4. 그리고 충돌된 파일을 클릭하여 저장소것을 사용해 해결하던가 내것을 이용해 해결하던가 선택해주어 충돌파일중 한쪽을 선택해준다. 5. 그리고 커밋 푸시 하면 해결됨
인증과 권한부여(인가) 웹 서비스에서 보안이라는 주제의 가장 기본이 되는 개념은 인증과 권한부여라고 볼 수 있다. 1. 인증이란 인증(Authentication)은 쉽게 말해서 자신을 증명하는 것이다. 다시 말해서 자기 스 스로가 무언가 자신을 증명할 만한 자료를 제시하는 것이다. 또는 자신이 누구라고 주장하는 사람을 확인하는 절차이다. 인증은 프론트엔드 관점에서 봤을 때 로그인, 회원가입과 같이 사용자의 도입부분을 가리키 곤 한다. 사용자가 로그인을 위해서 ID와 비밀번호를 입력하면 로그인 가능 여부를 결정하는 것이 인증이다. 반면 서버사이드 관점에서 봤을 때는 모든 API 요청에 대해 사용자를 확인하는 작업 이다. 2. 인증이 필요한 이유 사용자 A와 사용자 B가 웹을 사용한다고 하면 두 사용자는 기본적으로 정보가 다르고 ..
HTTP 프로토콜의 특징(비연결성과 비상태성) 1. 비연결성(Connectionless)과 비상태성(Stateless) HTTP 프로토콜에는 비연결성(Connectionless)과 비상태성(Stateless)라는 특징이 있다. 비연결성은: 클라이언트가 요청을 한 후 응답을 받으면 그 연결을 끊어 버리는 특징이고 비상태성은: 상태가 없다는뜻, 통신이 끝나면 상태를 유지하지 않는 특징이다. HTTP 통신은 요청에 대해 응답 후 연결이 끊기게 되며 과거에 대한 정보를 전혀 담지 않는다. 이 말은 지금 보낼 HTTP 요청은 지난 번에 내 정보를 담아 보냈던 HTTP 요청과 전혀 관계가 없다 는 말이다. 이렇게 모든 사용자의 요청마다 연결과 해제의 과정을 거치면서 연결 상태를 유지하지 않고 연결 해제 후에도 상태 정보를 저장하지 않는다. 그래서 서버의 자원을..
웹개발의 기본적인것들 1. 웹개발이란 무엇인가? 웹브라우저에서 작동하는 애플리케이션을 만드는게 웹개발이다. 2. 웹개발에 쓰이는 기본기술 기본기술은 HTML, 자바스크립트, CSS로 똑같다. 3. 웹의 작동방식 기본적으로 웹브라우저가 요청을 보내고 웹서버가 HTML, CSS, 자바스크립트를 반환하는 방식으로 응답한다고 보면된다. 4. 웹개발이 데스크톱, 모바일 앱 개발과 다른점은? 데스크톱앱이나 모바일 앱개발에 비해 웹개발은 더 까다로운편이다. 데스크톱이나, 모바일 개발에 서는 대체로 런타임 환경이 명확하다. 두 경우 모두 운영 체제의 종류와 버전, 사용할 언어와 기 능이 분명하다. 하지만 웹개발을 할때는 런타임 환경에 대한 통제력이 떨어진다. 왜냐하면 다양 한 브라우저의 종류와 버전이 존재하기 때문이다. 5. 일반 데스크톱..
쿠키와 세션 1. 쿠키와 세션을 사용하는 이유 쿠키와 세션은 HTTP 특징( 비연결성,비상태성 )을 해결하기 위해, 즉 클라이언트 인증을 유지하기 위해 사용한다. 2. 쿠키란 쿠키는 서버가 클라이언트의 웹 브라우저에 저장하는 데이터이다. 3. 쿠키의 특징 - 쿠키에는 사용자 인증이 유효한 시간을 명시할 수 있으며, 한 번 유효 시간이 정해지면 브라우저 를 끄더라도 인증이 유지된다는 특징이 있다. - 쿠키의 데이터 형태는 Key 와 Value로 구성되고 String으로만 이루어져 있다. - 4KB 이상 저장할 수는 없다. - 브라우저마다 저장되는 쿠키는 다르다.(크롬으로 남긴 쿠키는 인터넷 익스플로어에서 사용할 수 없다.) - 서버에서는 브라우저가 다르면 다른 사용자로 인식한다. 4. 쿠키의 용도- ID ,패스워드 저..