전체 글
-
인증과 인가란?프로그래밍 기초 공부 2022. 12. 2. 17:16
인증 어떤 개체의 신원을 확인하는 과정 개체는 보통 어떤 인증요소를 증거로 제시하여 자신을 인증 인증요소는 하나일 수도 있고 두 개 또는 그 이상일 수도 있음 ex) 온라인에서는 ID 와 패스워드를 입력하는 행위가 인증이 될 수 있음 실생활에서는 공공기관에서 신원확인 시 신분증을 보여주는 것 여러 개의 절차가 있을 수 있음 은행의 경우, 본인인증 후 OTP, 보안카드 등의 절차를 추가로 거침 인증 절차 회원가입, 로그인을 예시로 사용 회원가입 과정 아이디, 비밀번호를 생성 비밀번호를 암호화하여 DB에 저장 로그인 과정 등록된 아이디와 비밀번호를 입력 암호화되어 DB에 저장된 사용자의 비밀번호가 서로 일치하는지 비교 2-1 일치하면 로그인 2-2 일치하지 않을 시, 로그인에 실패 로그인에 성공하면, Acc..
-
대칭키, 비대칭키란?프로그래밍 기초 공부 2022. 12. 2. 10:46
대칭키 어떤 정보를 암호화, 복호화 할 때 사용하는 키가 동일한 경우 즉, 암호화 할 때 필요한 키값과, 해당 정보를 복호화 할 때 필요한 키값이 동일한 경우 어떠한 정보가 대칭키를 통해 암호화 되었다면, 똑같은 키를 갖고 있는 사용자가 아니면 해당 정보를 확인 불가 암호화 된 정보를 전달하고 확인하기 위해 송,수신자 모두 똑같은 키를 가지고 있어야 함 대표적인 알고리즘 DES, 3DES, AES, SEED, ARIA 장점 공개키 암호화 방식에 비해 속도가 빠름 대용량 Data 암호화에 적합 단점 키를 교환해야한다는 문제 (키 배송 문제) 관리해야 할 키가 방대하게 많아짐 키를 교환하는 중 키가 탈취될 수 있음, 사람이 증가할수록 정부 따로따로 키교환을 해야함 기밀성을 제공하나, 무결성/인증/부인방지를 ..
-
람다식이란?프로그래밍 기초 공부 2022. 11. 26. 14:37
람다식 메서드를 하나의 "식"으로 표현한 것 람다식으로 표현하면 메서드의 이름과 반환값이 없어지므로, "익명함수" 라고도 함 함수명을 선언하고 사용하는 것이 아닌 식별자 없이 실행가능한 함수 특징 메서드가 1번만 사용되고 메서드 길이가 짧은 경우 매우 유용 절차형 프로그래밍, 객체지향 프로그래밍과는 사뭇 다르게 함수의 구현과 호출만으로 프로그램을 만드는 방식인 함수형 프로그래밍에서 자주 사용됨 자바8부터 도입이 되었으며, 람다식을 익명함수로 만드는 것인데 익명함수는 일급객체 특징 자바에서 메서드는 혼자서 생존할 수 없음 객체가 아니기 때문에 클래스도 만들어야 하고, 객체도 생성해야 쓸 수 있음 하지만 람다식으로 인해 변수처럼 스스로 존재하며 매개변수로 전달하거나 결과로 반환될 수 있음 즉, 람다식으로 메..
-
Serverless란?프로그래밍 기초 공부 2022. 11. 26. 14:37
Serverless 개발자가 서버를 관리할 필요 없이 애플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 네이티브 개발 모델 트래픽에 따라 사용자가 직접 서버의 가용량을 증/감 시킬 필요가 없음 서버리스 모델에도 서버가 존재하긴 하지만, 애플리케이션 개발에서와 달리 추상화 기존 클라우드 컴퓨팅 모델에 비해 경제적이고 가용성이 좋은 모델 특징 클라우드 제공업체가 서버 인프라에 대한 프로비저닝, 유지 관리, 스케일링 등의 일상적인 작업을 처리 개발자는 배포를 위해 코드를 컨테이너에 패키징하기만 하면 됨 serverless 애플리케이션은 배포되고 나면 필요에 따라 자동으로 스케일 업되거나 스케일 다운 동적으로 서버의 자원을 할당 사용자가 없으면 자원을 할당하지 않고 대기하다가 요청이 들어오면 그 때 자원을..
-
Microservice Architecture와 Monolithic Architecture이란?프로그래밍 기초 공부 2022. 11. 26. 14:37
Monolithic Architecture MicroService Architecture가 각광을 받기 시작하면서 기존의 아키텍처를 지칭하는 의미로 생겨난 단어 모든 모듈은 하나의 서비스 내부에 종속되어있으며 서비스 자체에 집중할 수 있는 구조 각기 다른 역할을 하는 모듈들이 모여서 하나의 프로젝트 개발, 빌드, 배포가 용이할 수 있지만, 프로젝트의 규모가 커질수록 수정, 새로운 기능의 추가가 어려워짐 장점 단순한 구조 개발환경과 방법의 통일성 배포가 간편 End to End 테스트가 쉬움 단점 프로젝트의 규모가 커질수록 복잡도가 심각하게 증가 코드 전체를 이해하기 힘듬 빌드시간의 증가 (CI/CD 불가능) 새로운 기술을 적용하려면 프로젝트를 다 뜯어고쳐야할수있음 MicroService Architect..
-
실수 계산에서 오차가 생기는 이유프로그래밍 기초 공부 2022. 11. 17. 00:59
[ 대표적인 예 ] 자바스크립트 소숫점 계산 오류 let a = 0.1; let b = 0.2; console.log(a+b); // 0.30000000000000004 0.1과 02.를 더하면 0.3이 나와야하는데 실제로 코드를 작성하면 그렇지 않은 결과가 나옴 자바스크립트 뿐 아니라 PHP, C, Java, Python등 많은 언어에서 오류가 발생함 [ 원인 ] -> 컴퓨터는 우리가 익숙하게 사용하는 10진법과 달리 2진법을 사용해 계산 -> 몇몇 소수의 경우에는 10진법을 2진법으로 변환할 때 무한소수가 되어버림 -> 숫자는 컴퓨터내에서 64비트 형식 IEEE-754로 표현됨, 정확한 숫자를 저장하려면 정확히 64비트가 필요 64비트 중 52비트는 숫자를 저장하는 데 사용, 11비트는 소수점 위치,..
-
WAR, JAR 이란?프로그래밍 기초 공부 2022. 11. 17. 00:23
JAR, WAR 모두 Java의 jar 옵션 (java -jar)을 이용해 생성된 아카이브 파일로, 애플리케이션을 쉽게 배포하고 동작시킬 수 있도록 관련 리소스, 속성 파일 등을 패키징 한 것 [ JAR ] Java ARchived의 약자 JAVA 어플리케이션이 동작할 수 있도록 자바 프로젝트를 압축한 파일 Class (JAVA리소스, 속성 파일), 메타데이터, 라이브러리 파일을 하나의 파일로 모아서 자바 플랫폼에 응용 소프트웨어나 라이브러리를 배포하기 위한 소프트웨어 패키지 파일 포맷 JRE만 있어도 실행 가능함 JAR 파일은 실제로 ZIP 파일 포맷으로 이루어진 압축 파일 파일 확장자는 .jar 컴퓨터 사용자들은 JDK에 포함된 jar 명령어를 이용하여 JAR 파일을 만들거나 압축을 풀 수 있음 [ ..
-
정적페이지와 동적페이지란?프로그래밍 기초 공부 2022. 11. 17. 00:22
[ 정적페이지 ] 웹 서버에 이미 완성본으로 저장되어 있는 파일을 전달하는 웹 페이지 한 요청에 관하여 모든 사용자가 같은 결과를 받음 사용자는 서버의 데이터가 변경되지 않는 한 고정된 웹페이지를 봄 [ 장점 ] 다른 처리 없이 요청에 대한 파일만 전송하기 때문에 빠름 단순한 문서로 웹 서버를 구축하므로 호스팅 서버에 연결하는 비용이 적음 [ 단점 ] 저장된 정보만 보여주기 때문에 서비스가 한정적 추가 수정 삭제 등의 작업이 모두 코드를 직접 건들여야 하므로 관리가 힘듬 [ 동적페이지 ] 서버에 있는 데이터를 스크립트에 의해 가공처리하여 만들어진 html 문서를 전달하는 웹 페이지 상황에 따라 서버에 저장되어있는 HTML에 데이터 추가/가공을 해서 보여주는 방법 요청에 관하여 사용자는 조건에 따라 다른 ..