일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Numpy
- 자바의정석
- 불친절한 SQL 프로그래밍
- 항해플러스백엔드
- Secure Coding
- java
- Spring
- 항해플러스 회고
- 서블릿
- Python
- 항해플러스
- 김영한
- 시큐어코딩
- 자바공부
- 이것이자바다
- 스프링
- 자바의정석 연습문제
- 스프링MVC
- Java의정석
- 항해 추천인코드
- JPA
- 항해 추천인
- 스프링입문
- 항해플러스회고
- 스프링 핵심원리
- 인프런
- 항해플러스 백엔드
- 스프링 부트와 JPA
- 항해플러스 백엔드 7기
- 제네릭
- Today
- Total
목록분류 전체보기 (133)
Continuous Challenge

도커란 무엇인가? 도커는 2013년 3월 Docker, Inc 에서 출시한 오픈 소스 컨테이너 프로젝트이며, 현재 전세계적으로 큰 인기를 끌고 있다. 또한 AWS, Google Cloud Platform, Microsoft Azure 등의 클라우드 서비스에서 공식으로 지원하고 있다. 도커는 왜 인기를 끌게 되었나? 1. 복잡한 리눅스 애플리케이션을 컨테이너로 묶어서 실행할 수 있다. 2. 개발, 테스트, 서비스 환경을 하나로 통일하여 효율적으로 관리할 수 있다. 3. 컨테이너(이미지)를 전 세계 사람들과 공유할 수 있다. 어떻게 가능할까? 1. 리눅스 커널에서 제공하는 컨테이너 기술을 이용한다. 2. GitHub와 비슷한 방식의 Docker Hub를 제공한다. 컨테이너 기술이란? 컨테이너는 가상화보다 훨..
오랜만에 실행시킨 Server가 에러가 나면서 실행되지 않아서 한참을 헤맸다. 이 에러의 원인은 1. 공백이 있거나 (
세션관리 취약점 HTTP 프로토콜은 상태관리를 하지 않는 (Stateless) 프로토콜이다. 서버는 클라이언트의 정보를 유지하기 위해 세션메모리를 할당하여 클라이언트의 인증정보를 관리한다. 할당된 세션메모리를 구분하기 위해 서버는 세션ID를 할당하게 되며, 할당된 세션ID는 쿠키, URL파라메터, 의 hidden 파라메터값 형식으로 클라이언트에게 전달한다. 다른 사용자의 권한을 가로채기 위해서는 사용자의 정보를 저장하고 있는 세션의 정보를 추측하거나, 훔치거나, 공격자가 원하는 세션을 사용하게 하는 방법을 이용할 수 있다. - 세션ID 추측 : 세션ID 생성방법이 부적절한 경우 제 3자가 추측가능하며 세션 하이재킹이 가능하다. - 세션ID 훔치기 : 네트워크상에서 패킷 스니핑을 통해 세션ID를 훔쳐내거나..

분석, 설계단계 보안 요구항목 이해 1. 입력값 검증 2. 인증 3. 인가 4. 중요정보 처리 5. 암호화 - 키를 어떻게 생성하고 어떻게 반환할 건지가 가장 중요★ 6. 로깅/에러 처리 7. 세션관리 - 세션 = stateless, 연결되지 않은 상태에서 관리. 위협모델링 위협모델이란? - 위협모델은 설계 단계에서 보안 문제에 대한 체계적인 접근에 도움을 주기 위한 것이다. 위협모델링 학습 위협모델링은 다음 4가지 질문에 집중하는 것부터 시작해야 한다. - 무엇을 개발하고 있는가 - 무엇이 잘못될 수 있는가 - 잘못될 수 있는 것에 대해 어떤 조취를 취해야 하는가 - 분석을 잘 수행했는가 위협모델링 수행단계 1. 위협모델링을 수행할 팀을 소집한다. - 보안전문가가 팀장을 맡는 것이 좋다. 2. 애플리케..

김영숙 강사님(주식회사 오픈이지 대표) PART 01. 안전한 소프트웨어 개발 방법론 CH1. 시큐어코딩 개요 1. 소프트웨어 개발보안의 필요성 2. 침해 사고 사례 - 오버플로우와 언더플로우 → 세이프매스(Safemath) : 오버플로우를 방지하기 위해 사용하는 함수. - OpenSSL HeartBleed 취약점 : OpenSSL에서 서버와 클라이언트간의 연결유지를 위해 전달되는 실제 데이터 길이와 메시지로 전달되는 데이터 길이값을 서버가 비교하지 않고 처리하여 인접한 메모리 정보 유출 3. 보안 약점/취약점 DB 활용 - CWE 취약점 DB활용 (http://cwe.mitre.org) - SANS TOP 25 (http://www.sans.org/) → 2013년도 버전 TOP 25 유지를 권장 - ..

numpy 자료형(data type) int, float, bool(True/False) - 정수형(int : integer) 부호가 있는 정수형 : int8(-127~127), int16(-32768~32767), int32, int64 부호가 없는 정수형 : uint(Unsigned integer) : uint8(0~255), uint16(0~65535), uint23, uint64 - 실수형(float) float16, float32, float64 - 복소수형(complex) complex64 : 두 개의 32비트 부동소수점으로 표시되는 복소수 complex128 : 두 개의 64비트 부동소수점으로 표시되는 복소수 - 데이터의 타입을 알아보기 위한 함수 : dtype arange()

numpy 연산 - 연산자를 이용할 경우에는 +. -, *, / - 함수를 사용할 경우에는 add(), subtract(), multiply(), divide() 배열 a와 배열 b가 있을 때, a + b는 a[0]+b[0], a[1]+b[1], ... 와 같은 방식으로 연산 후, 그 결과를 리턴한다. numpy에서 vector와 matrix의 product(행렬곱셈)를 구하기 위해서 dot()함수를 이용한다. [1, 2] [5, 6] [1*5 + 2*7, 1*6 + 2*8] [3, 4] [7, 8] [3*5 + 4*7, 3*6 + 4*8] numpy에서는 배열 간의 연산을 위한 여러 함수들을 제공한다. - sum() : 각 배열의 요소를 더하는 함수. - product() : 배열의 요소들을 곱하는 함..

numpy 슬라이싱 정수 인덱싱(integer indexing) numpy 배열 a에 대해서 a[[row1,row2], [col1,col2]]는 a[row1,col1]과 a[row2,col2]라는 두 개의 배열 요소 집합을 의미한다. 부울린 인덱싱(boolean indexing) 부울린 인덱싱 배열을 생성할 때 표현식으로 이용하기 - 배열 a에 대해서 짝수인 배열 요소만 True로 지정하겠다 하면, b_arr = (a%2==0)
Anaconda 3.7 (2020.01.04 기준 최신버전) 설치 Numpy 설치 (pip3 install numpy) Pandas 설치 Numpy/Pandas 소개 - 고급데이터 분석 혹은 수치계산 시 사용. Numpy - 과학 계산을 위한 라이브러리로 다차원 배열을 처리하는데 필요한 여러 기능을 제공한다. (수치계산 시 사용. 대표적으로 다차원배열, 좀 더 높은 수준의 수학 함수 제공. 과학 수치 계산에서 뛰어난 모듈로 알려져있음.) - numpy 배열 동일한 타입의 값들을 갖는다. 배열의 차원을 rank라고 한다. shape : 각 차원의 크기를 튜플로 표시한 것. 예) 2행 3열인 2차원 배열은 rank값은 2이고, shape(2,3) - numpy 배열 생성 1) 파이썬의 리스트를 사용하는 방법..

♣ CURSOR(커서)란? 쿼리문에 의해서 반환되는 결과값들을 저장하는 메모리 공간. SELECT 문을 통해 결과값들이 나올 때 이 결과들은 메모리 공간에 저장하게 되는데 이때 이 메모리 공간을 '커서'라고 한다. ♣ FETCH란? 커서에서 원하는 결과값을 추출하는 것. 더보기 SELECT의 결과가 하나의 행(단일 튜플)일 경우는 INTO 절을 이용해 변수에 저장할 수 있지만, 결과가 복수행(복수 튜플)일 경우는 INTO절로 이를 처리할 수가 없다. 이렇게 복수 행의 결과를 행 단위로 처리하기 위해서 사용하는 것이 CURSOR이다. CURSOR 표현식은 서브 쿼리의 결과를 중첩 커서(nested cursor)로 반환한다. 중첩 커서는 PL/SQL의 REF CURSOR와 동일한 유형이다. 예제를 위해 다음..