컴퓨터 리소스에게 직접적으로 명령을 내리는 커널이 있고 쉘이 있으며 응용프로그램이 있다.그렇다면 여기서 쉘은 무엇인가?쉘(Shell)은 조개껍데기라는 뜻이 있으며, OS를 둘러싸고 있는 껍질과 유사하다. 정리하자면 OS와 사용자에게 의사소통을 가능하게 해주는 기능을 담당한다.쉽게 예를 들어 생각하면 윈도우의 MS-DOS창을 생각하면 된다.(여기서 커널이랑 쉘의 차이점이라 하면 커널은 바로 하드웨어의 리소스를 관리하며 쉘은 커널에게명령을 내리게 하는 기능을 가지고 있다. 커널은 기계어 등 어려운 언어를 가지고 있으므로 바로 쓰기 힘들기에 쉘을 이용하여 커널을 컨트롤 할 수 있게 만들어 놓은 것이다.) 쉘의 기능은 응용 프로그램과 커널과의 의사소통 역할, 즉 유저와 커널 사이의 의사소통 역할을 한다. 하드웨..
*소켓의 정의소켓(socket)은 1982년 BSD(Berkeley Software Distribution) UNIX 4.1에서 처음 소개되으며 현재 널리 사용되는 것은 1986년의 BSD UNIX 4.3에서 개정된 것입니다.소켓은 소프트웨어로 작성된 추상적인 개념의 통신 접속점이라고 할 수 있는데 네트웍 응용 프로그램은 소켓을 통하여 통신망으로 데이터를 송수신하게 된다. 소켓은 응용 프로그램에서 TCP/IP를 이용하는 창구 역할을 하며 응용 프로그램과 소켓 사이의 인터페이스 역할을 하고 있습니다. *소켓의 구조 클라이언트 어플리케이션은 서버와 통신을 하기위해 어떠한 메시지 또는 데이터를 서버에게 보내려 할 것 입니다. 그러하기 위해서는 네트워크에 연결하여 서버에 접속하여야 합니다. 그러기 위해서는 소켓..
하루에 글 작성 개수를 5개로 제한하고 그 이상 작성하려고 하면 아이피를 금지시켜서 다른 아이디로 로그인 하더라도 글 작성이 안되게끔 하는 방법을 알아보겠습니다. 우선 아이피 차단기능을 사용하기 위해서 인터셉터라는것이 필요합니다. 인터셉터에 대해서 간단히 설명하자면 DispatcherServlet과 컨트롤러 사이에 위치하며, 인터셉터에서 설정한 맵핑 경로에 해당하는 요청경로를 모두 가로챈다음 인터셉터 핸들러를 거치게끔 할 수 있습니다. 한마디로 말해서 컨트롤러로 가기전, 컨트롤러를 거치고난 후 어떤 처리를 해주고 싶을때 인터셉터를 사용합니다. 스프링 시큐리티에서 사용하는 필터와 기능은 비슷하지만 필터는 DispatcherServlet 앞에 위치하기 때문에 가장먼저 요청url을 받는다는 차이가 있습니다. ..
위 글이 약간 어렵게 설명 되어있는것 같아서, 다시한번 SecurityContextPersistenceFilterSecurityContextRepository 에서 SecurityContext 를 로딩하거나 SecurityContextRepository 로 SecurityContext 를 저장하는 역할을 한다.SecurityContext 란 사용자의 보호및 인증된 세션을 의미한다. LogoutFilter로그아웃 URL(디폴트 값 : /j_spring_security_logout) 로의 요청을 감시하여 해당 사용자를 로그아웃 시킨다. UsernamePasswordAuthenticationFilterusername 과 password 를 사용하는 폼기반 인증 요청 URL(디폴트 값: /j_spring_sec..
12345678910 springSecurityFilterChain org.springframework.web.filter.DelegatingFilterProxy springSecurityFilterChain /* Colored by Color Scriptercsweb.xml에 위와같이 스프링 시큐리티 필터 체인을 적용 시켜 줍니다. 필터 체인에 대해서 간략하게 설명 해드리자면 스프링 시큐리티는 여러가지 인증 절차를 거쳐서 최종 사용자에게 로그인을 허용하게 됩니다. 그 여러가지 인증 절차를 필터 체인 각각이 역할을 분담하여 처리하고 있습니다. 필터는 dispatcherservlet으로 가기전에 적용되기 때문에 가장 먼저 요청 url을 받는곳이라고 생각하면 됩니다. dispatcherservlet과 컨트롤..
123456789101112131415161718192021222324252627282930package com.javalec.ex.handler; import java.io.IOException; import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; import org.springframework.security.core.AuthenticationException;import org.springframework.security.web.authentication.AuthenticationFailureHandler; public ..
이 문제는 LIS(Longest increasing subsequence) 기본 문제이다 문제를 푸는 방법은 현재 인덱스를 검사할때 그 전에 인덱스를 하나하나 살펴보면서 현재 인덱스에 있는 숫자 보다 작은 것의 인덱스 중에 가장 큰 dp값(가장 긴 부분증가수열)을 택하고 그것에 1을 더하면 현재 인덱스에서 가장 긴 부분 증가 수열을 구하게 된다. 예를 하나 들면 10 20 10 30 20 50 이 있을때 30에서 가장 긴 부분 증가수열을 구하려면(dp[3]에 들어가는 값) 30과 10 20 10 을 차례대로 비교를 해 나간다 그중에 10,20,10모두 30보다 작으므로 후보가 될 수 있다. 이 세 숫자 중에서 dp[0],dp[1],dp[2]에 저장된 값중에 가장 큰 것에 1을 더해주게되면 30에서의 가장..
- Total
- Today
- Yesterday
- return type
- typescript
- async
- type alias
- Polyfill
- react hooks
- reflow
- await
- react
- atomic design
- server side rendering
- Babel
- javascript
- state
- useRef
- rendering scope
- storybook
- Action
- es6
- props
- reducer
- design system
- mobx
- reactdom
- webpack
- computed
- promise
- useEffect
- Next.js
- hydrate
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |