프록시 프록시(Proxy)는 다른 사람을 대신하여 무엇인가를 하는 것으로, WEB에서는 클라이언트를 대신한다는 의미다. ❓ 클라이언트를 대신한다고? 예를 들면 서버와 클라이언트가 통신을 할 때, 그 사이에 프록시가 개입한다. 서버는 프록시를 '클라이언트'로 인식한다. 위 사진을 이해하기 더 수월하다. 프로시는 중개 서버다. 🧐 프록시 서버를 사용해야 하는 이유 개인정보 보호 속도 향상 차단된 정보에 접근 가능 1️⃣ 개인정보 보호 서버와 클라이언트가 정보를 주고받을 때, 나의 IP 주소 정보도 포함된다. 그렇지만 프록시 서버를 사용하면 IP 주소 정보를 변경한다. 즉, 개인정보가 보호된다. 2️⃣ 속도 향상 프록시 서버는 이전에 들어온 데이터들을 저장한다. 캐시를 사용한다는 뜻이다. 현재 요청이 들어온 ..
RESTful API RESTful API는 REST 규칙을 지키며 설계된 API를 말한다. REST REST는 Representational State Transfer의 약자로 HTTP 통신에서 어떤 자원에 대한 CRUD 요청을 *Resource와 *Method로 표현하여 특정한 형태로 전달하는 방식을 말한다. ⭕ Resource REST에서 Resource는 URI를 말한다. ⭕ Method REST에서 Method는 서버에 요청을 보내기 위한 방식을 말한다. 위 사진을 보면 클라이언트가 서버에게 REST 메서드 중 하나를 사용하여 요청을 보내고 있다. 이렇게 서버에게 요청을 보낼 때 어떻게 요청을 보내야 RESTful 한 건지 알아보자. 🤝 REST 조건 (6가지) 1️⃣ 클라이언트-서버 구조(Cl..
CORS CORS는 Cross Origin Resource Sharing의 약자로 교차 출처 리소스 공유를 말한다. 브라우저는 동일 출처 정책(SOP)을 따라 자기 자신이 아닌 출처들은 전부 차단한다. 어떠한 데이터가 들어올지 모르기 때문이다. 그렇지만 우리는 여러 가지 정보를 필요로 한다. 외부의 다른 데이터들도 불러오고 싶다. ❓ 브라우저의 차단을 피하고 안전한 데이터를 불러올 수는 없을까? CORS가 서로 다른 리소스를 안전하게 받거나 내보낼 수 있게 해 준다. ✅ CORS 동작 과정 브라우저가 Origin 헤더를 요청에 추가합니다. 그리고 서버가 Origin 헤더의 값과 CORS 구성에 있는 메서드 및 출처 정보와 비교한다. 일치하는 항목이 있으면 Access-Control-Allow-Origin..
해시 해싱 (hashing) 해시 함수 (hash function) 해시 테이블 (hash table) 구현 (C++) 🧐 해싱 (hashing) 해싱은 유사한 개체 그룹에서 특정 개체를 고유하게 식별하는 데 사용되는 기술로, 키(key)에 산술적인 연산을 적용하여 항목이 저장되어 있는 테이블의 주소를 계산하여 항복에 접근한다. 위 그림은 키(key)를 이용하여 해시 함수를 통해 항목에 접근하는 과정을 나타낸 것이다. 위와 같은 탐색 과정을 해싱(hashing)이라고 한다. 🧐 해시 함수 (hash function) 해시 함수는 임의의 데이터를 고정된 길이로 매핑하는 함수를 말한다. 데이터에 해싱 작업이 적용되면 원래 데이터를 다시 가져올 수 없으므로 단방향 프로세스라고도 한다. 또한 모든 해시 출력은 ..
Refresh Token Refresh Token을 사용하면, 보안성을 보다 손쉽게 강화할 수 있다. 💦Refresh Token을 왜 사용할까? Access Token은 유효기간을 가진다. 유효기간이 지나면 만료되어 해당 토큰은 더 이상 사용하지 못하게 된다. 그러면 사용자는 유효기간이 만료될 때마다 새로운 Access Token을 발급받아 서버에 요청해야 한다. 유효기간이 만료될 때마다 새로운 Access Token을 발급받는 건 사용자에게 매우 불편하고 귀찮은 작업이다. 그렇다고 유효기간을 늘리면 늘릴수록 보안성이 약화되고 줄이자니 발급을 그만큼 더 많이 받아야 하는 딜레마가 생긴다. Refresh Token은 이러한 딜레마를 해결하기 위해 만들어진 토큰이다. Access Token을 사용자에게 발급..
https://www.acmicpc.net/problem/2743 2743번: 단어 길이 재기 알파벳으로만 이루어진 단어를 입력받아, 그 길이를 출력하는 프로그램을 작성하시오. www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 구현 문자열 ⊙ 문제 접근 과정 문자열을 input() 함수로 받고, 길이를 얻을 수 있는 함수인 len() 함수를 사용해 출력해주면 된다. ⊙ 문제 풀이 inputString = input() print(len(inputString)) ⊙ 결과 ⊙ 마무리 NONE 좋아요는 로그인하지 않아도 누를 수 있습니다!
https://www.acmicpc.net/problem/1535 1535번: 안녕 첫째 줄에 사람의 수 N(≤ 20)이 들어온다. 둘째 줄에는 각각의 사람에게 인사를 할 때, 잃는 체력이 1번 사람부터 순서대로 들어오고, 셋째 줄에는 각각의 사람에게 인사를 할 때, 얻는 기쁨이 1번 www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 브루트포스 알고리즘 배낭 문제 ⊙ 문제 접근 과정 0-1 배낭문제 알고리즘으로 문제를 풀면 된다. 그냥 평범한 배낭 문제에서 변수명만 바꿔도 풀린다. 이전 최대가치와 이전 값을 빼고 현재 값을 넣은 것과 비교하여 더 가치가 높은 것을 넣어주자 ⊙ 문제 풀이 import sys input = sys.stdin.readline N = in..
WAS WAS는 동적 콘텐츠나 DB 조회가 필요한 데이터를 웹 서버가 받을 시 해결해준다. 클라이언트로부터 정적 콘텐츠의 Request가 들어오면 웹 서버가 처리해준다. 클라이언트로부터 받은 Request가 정적 콘텐츠가 아닌 동적 콘텐츠라면 WAS에게 보낸다. 정적 콘텐츠 : HTML, CSS, IMG 등 동적 콘텐츠 : JSP, ASP, PHP 등 위 사진에서 볼 수 있듯이 WAS는 Web Server와 Web Container가 결합한 형태이다. Web Container는 JSP와 Servlet을 실행시킬 수 있는 소프트웨어를 말한다. 또한 데이터베이스와 연결하여 데이터를 주고받아 Web Server로 전달하는 역할도 수행한다. Web Container는 중간 관리자 느낌의 소프트웨어이고 우리는 이..
Gradle Gradle은 오픈소스 빌드 자동화 도구다. *빌드 도구라고 생각하면 된다. Gradle은 *Groovy를 이용한다. 🧐 Groovy Groovy는 JAVA에 파이썬 등의 특징을 더한 동적 객체 지향 프로그래밍 언어다. JAVA에 각종 언어의 특징을 모아놓은 언어로 JAVA와 아주 비슷하고 JAVA 라이브러리를 호출하여 사용한다. JAVA와 호환이 되며 JAVA 클래스 파일을 그대로 Groovy 클래스로 사용할 수 있다. 🧐 빌드 도구 빌드 도구는 소스 코드 파일들을 컴퓨터에서 실행할 수 있는 소프트웨어로 변환하는 과정을 자동으로 수행해주는 프로그램을 말한다. Groovy와 빌드 도구에 대해 알아봤으니 다시 한번 Gradle가 어떤 건지 보자. Gradle은 Groovy 기반의 오픈소스 빌드..
https://www.acmicpc.net/problem/10039 10039번: 평균 점수 입력은 총 5줄로 이루어져 있고, 원섭이의 점수, 세희의 점수, 상근이의 점수, 숭이의 점수, 강수의 점수가 순서대로 주어진다. 점수는 모두 0점 이상, 100점 이하인 5의 배수이다. 따라서, 평균 점 www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 수학 사칙연산 ⊙ 문제 접근 과정 배열에 값을 다 넣어주었다. 그리고 배열의 값들을 하나씩 탐색해주어 40 미만인 값은 40으로 갱신해주었다. 마지막으로 sum을 사용하여 배열의 모든 값들을 더한 후 5로 나누어 평균을 계산해 출력해주었다. ⊙ 문제 풀이 score = [int(input()) for _ in range(5)..
- Total
- Today
- Yesterday
- 자바
- 운영체제
- C++
- 쉽게 배우는 자바 프로그래밍
- BFS
- 문자열
- 알고리즘
- java
- 정렬
- 그리디
- 풀이
- py
- JS
- 쉽게배우는자바프로그래밍
- 프로그래머스
- 연습문제
- OS
- 해답
- 자바스크립트
- 정리
- 답
- 쉽게배우는
- 우종정
- CPP
- Python
- Web
- 정답
- 구현
- 파이썬
- 백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |