일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스파르타내일배움캠프
- 스파르타코딩클럽
- java
- til
- 부트캠프
- 코딩테스트
- 99일지
- MySQL
- 개발자블로그
- 스파르타내일배움캠프TIL
- AWS
- 백준
- Python
- 소프트웨어
- Spring
- 프로그래머스
- 국비
- 중심사회
- 운영체제
- 개인공부
- 자바
- 컴퓨터구조론 5판
- 컴퓨터개론
- 스파르타내일배움캠프WIL
- 항해
- 내일배움캠프
- 개발자스터디
- 99클럽
- Flutter
- wil
- Today
- Total
목록📖 이론 (35)
컴공생의 발자취
💡 오늘의 학습 키워드- 개인과제 -쿠키와 세션 사용하는 이유?쿠키 & 세션JWT(Token)대부분의 IT 대기업이 JWT를 사용하지 못하는 이유? 쿠키와 세션 사용하는 이유?: HTTP 프로토콜의 특성 비연결성(Connectionless)과 무상태(Stateless)를 보완하기 위해서 사용한다. HTTP 프로토콜이란? 인터넷상에서 데이터를 주고 받기 위하여 웹브라우저와 웹서버 간에 따르는 프로토콜접속유지는 최소한으로 할 수 있기 때문에, 더 많은 유저의 요청을 작은 리소스로 처리할 수 있다는 장점이 있다.하지만, 요청 간의 의존관계가 없기 때문에, 현재 접속한 유저가 이전의 접속한 유저와 같은지 확인할 방법이 없다. 또한, 같은 유저인지 확인하려면 지속적으로 인증을 해줘야 하는 번거로움이 있다. 비연..
💡 오늘의 학습 키워드- 면담 -jwt 구조와 JwtUtil시크릿 키 & 퍼블릭 키jwt의 인증 방식(Cookie vs Header) jwt 구조와 JwtUtil헤더 + 내용 + 서명 : .을 기준으로 나뉨이걸 세팅 해놓은 게 JwtUtil* Jwt는 보안상 사용한다!But, 누구나 다 복호화하면 보안상 안 좋지 않나? -> 시크릿 키 & 퍼블릭 키 시크릿 키 & 퍼블릭 키시크릿키 : 내가 만든 JWT만 볼 수 있다. * 엄청 긴 스트링 이용 validate token퍼블릭키 : 무조건 볼 수 있고 jwt의 인증 방식(Cookie vs Header)Cookie : 서버가 JWT를 쿠키에 저장하여 클라이언트로 전송. 클라이언트는 자동으로 쿠키를 포함하여 요청.장점 : 자동으로 쿠키를 전송하므로 클라이..
💡 오늘의 학습 키워드- 1주차 -JWTJWT 장단점JWT 사용 흐름Spring Securitysout JWT(Json Web Token): JSON 포맷을 이용하여 사용자에 대한 속성을 저장하는 Client 기반의 Web Token.* 일반적으로 쿠키 저장소를 사용하여 JWT를 저장* 로그인 정보를 Server에 저장하지 않고 Client에 로그인 정보를 JWT로 암호화하여 저장모든 서버에서 동일한 Secret Key 소유Secret Key를 통한 암호화/위조 검증(복호화 시)누구나 평문으로 복호화 가능Secret Key가 없으면 JWT 수정 불가능 (Read Only) JWT 장단점장점동시 접속자가 많을 때 서버 측 부하 낮춤Client, Server가 다른 도메인을 사용할 때 ex) 카카오 Oa..
💡 오늘의 학습 키워드- 1주차 -Autowired & Primary & Qualifier인증과 인가쿠키 - 세션 방식JWT 기반 인증쿠키 vs 세션- 팀 회의 -git branch naminggit commit message template- 코트카타 : SQL -JOIN Autowired & Primary & QualifierAutowired기본적으로 타입으로 찾는다. ex) Food같은 타임이 여러개라면 이름으로 찾는다. ex) pizza, chickenPrimary가 추가되면 Bean이 여러개라도 우선적으로 찾아준다.Qualifier은 별칭으로 찾아준다.Primary vs QualifierPrimary : 범용적으로 사용Qualifier지역적으로 사용우선순위 더 높음Qualifier이라고 명시해..
·✅ 중학생도 알아들을 수 있게 쉽게 정리해보세요! 스레드(Thread, 쓰레드): 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위 * 프로세스와 스레드의 차이점?프로세스 : 운영체제로부터 자원을 할당받은 작업의 단위프로그램은 코드 덩어리 파일, 그 프로그램을 실행하는 게 프로세스스레드 : 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위스레드는 프로세스의 코드에 정의된 절차에 따라 실행되는 특정한 수행 경로 멀티스레드(Multi Thread, 멀티쓰레드): 둘 이상의 스레드를 동시에 실행 * 장점Context-Switching 할 때 공유하고 있는 메모리만큼의 메모리 자원을 아낄 수 있다.스레드는 프로세스 내의 Stack 영역을 제외한 모든 메모리를 공유하기 때문에 통신의 부담이..
✅ 중학생도 알아들을 수 있게 쉽게 정리해보세요! 데이터베이스(Database): 통합하여 관리되는 데이터의 집합체중복된 데이터를 없애고, 자료를 구조회하여, 효율적인 처리를 할 수 있도록 관리된다.따라서, 여러 업무에 여러 사용자가 데이터베이스를 사용할 수 있다. 이러한 데이터베이스는 응용 프로그램과는 다른 별도의 미들웨어에 의해 관리된다.데이터베이스를 관리하는 이러한 미들웨어를 데이터베이스 관리 시스템(DBMS : Database Management System)이라고 한다. * 특징사용자의 질의에 대하여 즉각적인 처리와 응답이 이루어진다.생성, 수정, 삭제를 통하여 항상 최신의 데이터를 유지한다.사용자들이 원하는 데이터를 동시에 공유할 수 있다.사용자가 원하는 데이터를 주소가 아닌 내용에 따라 참조..
✅ 중학생도 알아들을 수 있게 쉽게 정리해보세요! 서버(Server) vs. 클라이언트(Client)서버(Server) : 인터넷에 연결돼 있고, 정보를 저장하고 있다. 정보를 요청하는 사람들에게 정보를 보내준다.클라이언트(Client) : 서버에 정보를 요청하고 그 정보를 받는 사람들을 뜻한다.예를 들어, 인터넷으로 웹사이트를 보면, 웹사이트에 접속하는 우리가 클라이언트가 되고, 웹 사이트를 호스팅하는 게 서버가 된다.* 호스팅이란? 인터넷을 통해 웹사이트나 애플리케이션과 같은 온라인 서비스를 제공하는 과정을 말한다.** 웹사이트를 호스팅한다는 것은? 웹사이트의 파일과 데이터를 저장하고 관리하는 서버를 제공하는 것 프론트엔드 (Front-end) vs. 백엔드(Back-end)프론트엔드(Front-e..
분할 정복 알고리즘(Divide-and-Conquer) 합병정렬 MergeSort 퀵 정렬 QuickSort 선택 문제 Selection Problem 선택 문제(Selection Problem) : k번째 작은 수를 찾는 문제 입력에서 퀵 정렬에서와 같이 피봇을 선택하여 피봇보다 작은 부분과 큰 부분으로 분할한 후에 k번째 작은 수가 들어 있는 부분을 순환적으로 탐색한다. unsorted array : 최소 숫자를 k번 찾는다. -> 최악 시간복잡도 : O(kn) ** 단, 최소 숫자를 찾은 뒤에는 입력에서 최소 숫자를 제거한다. sorted array : 숫자들을 정렬한 후, k번째 숫자를 찾는다. -> 최악 시간복잡도 : O(nlogn) pseudo code Selection(A, left, rig..
7.1 진동수는 물체가 단위시간 동안 진동하는 횟수를 의미하며 1Hz는 1초동안 물체가 1번 진동하는 것을 의미한다. 따라서, 시스템 버스의 대역폭 = 버스 클록 × 데이터 버스의 폭 = 300MHz × 64bit = 300MHz × 8Byte = 2.4GByte/sec 7.2 동기식 버스는 인터페이스 회로가 간단하다. 비동기식 버스는 각 버스 동작이 완료되는 즉시, 연관된 다음 동작이 발생되므로 동기식 버스에서와 같이 낭비되는 시간이 없다. 7.3 병렬 중재 방식은 각 버스 마스터들이 독립적인 버스 요구 신호와 버스 승인 신호를 가지고 있어 직렬 중재 방식보다 버스 마스터들이 버스를 균등하게 사용할 수 있도록 해준다. 직렬 중재 방식은 요구 및 승인 신호 선이 각각 한 개씩만 있어 하드웨어 구현이 간단..
6.1 원형 평판 1개의 저장 용량 = {(트랙의 수 × 섹터의 수) × 섹터의 용량} × 2 = {(100000 × 500) × 512Byte} × 2 = 10^8 × 512Byte = 10^8 × 2^(-1) × 2^10Byte = 50GByte (2^10 ≒ 10^3)이므로 디스크 드라이브의 저장 용량 = 50GByte × 5 = 250GByte이다. 6.2 (1) 표면 당 저장 용량 = 표면당 트랙 수 × 트랙당 섹터 수 × 섹터당 데이터 필드의 길이 = 4800 × 200 × 512Byte = 491520000Byte = 491.52MByte (2) 탐색 시간 = 현재 트랙에서 액세스 요구한 트랙까지의 거리 × 트랙당 탐색 시간 = (4800 – 3250 + 450) × 0.0024ms = 4...