본문 바로가기
728x90

스터디123

Spring vs SpringBoot Spring을 공부하면서 Spring과 SpringBoot의 차이점이 궁금했다. 우선 왜 스프링을 스프링이라할까? Spring 어원 개발자들이 스프링을 사용하게되면서 추운 "Winter"는 끝이나고 이제 "Spring"이 왔다고해서 스프링으로 이름이 붙여졌다고한다. 이렇게 Spring이라는 이름으로 프레임워크를 사용하게되었고 이후에 나온 것이 SpringBoot이다. Spring vs SpringBoot Spring과 SpringBoot의 자세한 차이점은 무엇일까? 우아한Tech의 닉 개발자분께서는 봄 vs 조금더 봄 으로 표현하신다. 스프링부트 특징은 1) 쉽게 만들고 2) 단독적이며 3) 상용화 수준의 4) 스프링 기반 애플리케이션 이라는 특징으로 단지 실행만 시키면 된다. 본격적인 차이점은 아래와 .. 2021. 6. 27.
[JAVA] 자바 오류, 에러 (Error) 종류 1. 컴파일 에러 (Compillation Error) - 컴파일 단계에서 오류 발견, 컴파일러가 에러 메시지 출력 - 에러 발생 원인 : 문법 오류 - 예) 맞춤법, 문장부호(;), 선언되지 않은 변수 사용 등 2. 런타임 에러 (Runtime Error) - 프로그램 실행 중 에러 발생 - 컴파일 때 에러나지 않고 프로그램 실행 시 에러 발생 -> 문법적 오류는 아님 - JVM에서 에러 메시지 출력 (XXXException 에러) - 예외(Exception)처리 등을 통해 에러 해결 - 예) 0으로 나누기, 무한루프, null pointer error, segmentation fault(존재하지 않는 메모리 위치에 접근, 잘못된 index 참조) - RuntimeException 종류 3. 논리 에러.. 2021. 5. 30.
[네트워크] 프로토콜(Protocol) 💡프로토콜이란? 복수의 컴퓨터 사이나 중앙 컴퓨터와 단말기 사이에서 데이터 통신을 원활하게 하기 위해 필요한 통신 규약. 즉 컴퓨터와 컴퓨터가 서로 이해 할 수 있는 언어, 공용된 언어를 사용하도록 하기 위해 사용하는 통신 규약을 의미한다. 💡프로토콜 3가지 요소 1. 구문(syntax) : 데이터의 형식이나 신호로, 부호화 방법 등을 정의 2. 의미(semantics) : 오류 제어, 동기 제어, 흐름 제어 같은 각종 제어 절차에 관한 제어 정보 정의 3. 순서(timing) : 송/수신자 간 혹은 양단 (end-to-end)의 통신 시스템과 망 사이의 통신 속도나 순서 등을 정의 💡프로토콜의 기능 1. 주소 설정 2. 순서 제어 3. 연결 제어 4. 흐름 제어 5. 오류 제어 6. 동기화 7. 다중화.. 2021. 5. 28.
[보안] 공개키 기반구조(PKI) 구성요소 공개키 기반구조(Public Key Infrastructure, PKI) 1. PKI란 - 공인 인증기관이 인터넷상에서 사용자간에 법적 효력이 있는 인증서를 전자적으로 분배, 전달, 제공함으로써 - 비인가된 자로부터 개인 정보보호, 전자상거래 위변조 방지 등을 수행 가능 - 목적 : 누구나 안전하고 편리하게, 효율적으로 공개키를 획득, 사용하게 함 - 사용하는 인증서는 주로 x.509 - pki는 공개키를 인증/등록 기관과 같이 신뢰성 있는 제3자를 통해 관리하고 전달함. 2. PKI의 주요 구성 요소 인증서 (Certificate) : 공개키나 공개키의 정보를 포함하는 인증서 인증기관 (Certification Authority, CA) : 인증서의 발급 및 관리 등록기관 (Registration Au.. 2021. 5. 28.
[보안] 정보보안 3요소 정보보안은 정보 및 정보 시스템을 허가되지 않은 접근, 사용, 공개 등으로 부터 보호함으로써 무결성, 기밀성, 가용성을 제공한다. 1. 무결성 (Integrity) 정보가 인가된 사람에 의해서만 데이터에 접근 또는 변경이 가능하다는 것을 의미 예) 오직 정부만이 한국은행을 통해 지폐를 만들거나 변경 가능하고 그렇지 않은 경우 위조지폐로 취급 2. 기밀성 (Confidentiality) 허가되지 않은 사용자 또는 객체가 정보의 내용을 알 수 없도록 함. 즉 허가된 사람만 정보를 알 수 있게함. (비밀 보장) 예) 방화벽 암호, 패스워드 등 3. 가용성 (Availability) 정보에대한 접근과 사용이 적시에 보장되는 상태. 정보 또는 정보 시스템이 원하는 때에 제대로 제공되어야 하는 것을 의미한다. 2021. 5. 28.
[보안] 대칭키 vs 공개키(비대칭키) 1. 대칭키 - 하나의 비밀키를 클라이언트와 서버과 함께 사용 (key가 1개) - 암호화와 복호화 키가 같은 암호화 알고리즘 장점 : 공개키에 비해 계산 속도가 빠름 단점 : 비밀키 하나만 알아내면 암호화된 내용 해독 가능 -> 정보 유출 위험 높음 - 대칭키 암호는 암호화 단위에 따라 스트림암호와 블록암호로 나뉨 - 대칭키 알고리즘 : DES, AES 등 2. 공개키 (비대칭키) - 공개키와 비밀키 존재 (key가 2개) - 공개키 암호를 구성하는 알고리즘을 비대칭 암호라고도 불림 장점 : 개인키로인해 대칭키 방식보다 보안성 높음 단점 : 공개키에 비해 계산 속도가 느림 - 암호화 키 = 공개키 = public key - 비밀 키 = 개인키 = private key - 암호화 키와 비밀키는 서로 다름.. 2021. 5. 28.
[소프트웨어공학] 디자인 패턴 💡디자인 패턴이란? 소프트웨어 디자인 패턴(software design pattern)은 소프트웨어 공학에서 소프트웨어 디자인에서 특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책이다. 소스나 기계 코드로 바로 전환될수 있는 완성된 디자인은 아니며, 다른 상황에 맞게 사용될 수 있는 문제들을 해결하는데에 쓰이는 서술이나 템플릿이다. (출처 : 위키백과) - SW를 설계 할 때 자주 발생하는 문제를 재사용하여 해결할 수있도록 하는 해결책 - 이미 만들어져 잘 되는 것을 처음부터 다시 만들 필요 X - 패턴 : 각기 다른 SW 모듈이나 기능을 다양한 응용 SW 시스템을 개발할 때에도 서로 공통되는 설계 문제나 해결책에 공통점이 있다. 이러한 유사점을 패턴이라고 한다. 💡디자인 패턴 종류 G.. 2021. 5. 28.
[DB] Locking (잠금 기법) 💡Locking 이란? 데이터베이스에서 Lock이란 트랜잭션 처리의 순차성을 보장하기 위한 방법이다. (트랜잭선 : DB의 나누어지지 않는 최소한의 작업 단위) 잠금 단위란 = 잠그는 단위 잠금 기법이란 = 하나의 트랜잭션이 데이터에 액세스 하는 동안 다른 트랜잭션이 그 데이터 항목에 접근할 수 없도록 하는 병행제어 기법. Lockd은 잠금 기법에서 사용하는 데이터 객체이다. 🍒Lock 종류 - 공유 잠금 (Shared Lock) 공유 잠금은 데이터를 읽을 때 사용되어지는 Lock이다. 공유 잠금은 공유 잠금끼리 동시에 접근이 가능하다. - 베타 잠금 (Exclusive Lock) 베타 잠금은 데이터를 변경하고자 할 때 사용되며, 트랜잭션이 완료 될 때까지 유지된다. 베타 잠금은 Lock이 해제 될 때까.. 2021. 5. 28.
[DB] 데이터 정규화 1NF, 2NF, 3NF, BCNF 💡데이터 정규화란? 데이터 베이스의 설계를 재구성. 불필요한 데이터를 제거하고, 삽입/삭제/갱신 시 각종 이상현상 방지를 하기 위함 💡데이터 정규화 목적 1. 불필요한 데이터 제거 2. 논리적인 데이터 저장 (이상현상 방지) 정규화는 제1정규화, 2정규화, 3정규화, BCNF, 4정규화, 5정규화로 나눌 수 있다. 보통 4, 5정규화까지는 하지 않는다고한다. 제 1정규화 제1정규화는 각 row마다 컬럼의 값이 1개씩 있어야한다. 즉, 컬럼의 값이 원자값이어야 한다. 예를들어 subject 라는 컬럼에 값이 math, biology 이렇게 2개의 값이 들어가면 제 1정규화를 만족하지 못 한다. 제 2정규화 2정규화는 테이블의 모든 컬럼이 완전 함수 종속을 만족한다. 완전 함수 종속이란 기본키 중에 특정 컬.. 2021. 5. 28.
[DB] Transation / Undo / Redo 트랜잭션을 공부하면서 나온 undo, redo 에 대해서 알게되어 정리를 해보려고한다. 트랜잭션이란? 데이터베이스 트랜잭션(Database Transaction)은 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위이다. 여기서 유사한 시스템이란 트랜잭션이 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 시스템을 의미한다. 이론적으로 데이터베이스 시스템은 각각의 트랜잭션에 대해 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 영구성(Durability)을 보장한다. 이 성질을 첫글자를 따 ACID라 부른다. 그러나, 실제로는 성능향상을 위해 이런 특성들이 종종 완화되곤 한다. 어떤 시스템들에서는 트랜잭션들은 논리적 작업 단위(LUW, .. 2021. 5. 17.
[Algorithm] Prefix Sum 구간합 🍒구간합이란? -부분합 : 0~k 까지의 합 -구간합 : a~b 까지의 합 구간합은 말 그대로 시작점 a 부터 끝점 b까지 사이의 모든 값의 합을 의미한다. 🍒구간합 적용 구간합을 구하는 문제인데 구간사이의 수의 개수가 5천만개라면? 이러한 요청이 2천만개라면? 이중반복문을 사용해서 해결하면 분명 시간복잡도가 O(N^2)으로 오래걸리는 문제가 생긴다. int n; //요청 수 scanf("%d", &n); while(n--){ int a, b; scanf("%d %d", &a, &b); int sum = 0; for(int i=a; i 2021. 5. 11.
[GCP] Spanner 🧀GCP Spanner란? Cloud Spanner는 관계형 데이터베이스 구조의 이점을 비 관계형 수평 확장과 결합하기 위해 특별히 클라우드 용으로 구축된 서비스이다. 완전 관리형 미션 크리티컬 관계형 데이터베이스 서비스로서 글로벌 규모의 트랜잭션 일관성, 스키마, SQL(ANSI 2011, 확장 프로그램 포함), 고가용성을 위한 자동 동기식 복제를 제공한다. 즉, 페타 바이트 규모의 용량을 제공 가능하고 global scale, 스키마 , SQL 및 고 가용성을 위한 자동 동기 복제에서 트랜잭션 일관성을 제공한다. 확장성이 높지만 비용이 비싸다는 단점이 있다. 관게형 데이터베이스를 능가하거나 처리량을 높이기 위해 데이터베이스를 분할하거나, 트랜잭션 일관성 및 글로벌 데이터/강력한 일관성이 필요한 경우,.. 2021. 3. 30.
[GCP] Composer ✨Google Cloud Platform의 Data Processing과 관련한 Product✨ Data collection : Pub/sub, Transfer service, Transfer appliance Data transform : Dataflow,Dataproc, Dataprep Data storage : BigQuery, Bigtable,GCS Data analysis : BigQuery Data ochestration : Composer 🧀GCP Composer 란? Google Cloud 에서 Composer는 Apache Airflow로 워크플로를 만들고 배포하기 위한 Google Cloud 솔루션이다. 인기 있는 Apache Airflow 오픈소스 프로젝트를 기반으로 구축되어 Pyth.. 2021. 3. 30.
[GCP] GCS (Google Cloud Storage) ✨Google Cloud Platform의 Data Processing과 관련한 Product✨ Data collection : Pub/sub, Transfer service, Transfer appliance Data transform : Dataflow,Dataproc, Dataprep Data storage : BigQuery, Bigtable, GCS Data analysis : BigQuery Data ochestration : Composer 🧀GCP GCS (Google Cloud Storage)란? Cloud Storage란 객체 저장소로 해당 서비스를 통해서 데이터의 양과 상관없이 언제 어디서나 데이터를 저장하고 가져올 수 있는 서비스이다. 객체는 버킷이라는 컨테이너에 저장한다. 모든 버.. 2021. 3. 30.
[GCP] Dataprep ✨Google Cloud Platform의 Data Processing과 관련한 Product✨ Data collection : Pub/sub, Transfer service, Transfer appliance Data transform : Dataflow,Dataproc, Dataprep Data storage : BigQuery, bigtable, GCS Data analysis : BigQuery Data ochestration : Composer 🧀GCP Dataprep이란? Google Cloud Dataprep은 간단한 드래그 앤 드롭 브라우저 환경에서 데이터를 시각적으로 탐색 및 정리하고 분석이 가능하도록 여러 데이터 세트를 준비하는 데 활용되는 지능형 데이터 서비스이다. 데이터를 내 입맛대.. 2021. 3. 30.
[GCP] Dataproc ✨Google Cloud Platform의 Data Processing과 관련한 Product✨ Data collection : Pub/sub, Transfer service, Transfer appliance Data transform : Dataflow, Dataproc, Dataprep Data storage : BigQuery, bigtable, GCS Data analysis : BigQuery Data ochestration : Composer 🧀GCP Dataproc이란? Dataproc은 일괄 처리, 쿼리, 스트리밍, 머신 러닝에 오픈소스 데이터 도구를 활용할 수 있는 관리형 Spark 및 Hadoop 서비스입니다. Dataproc 자동화를 통해 신속하게 클러스터를 만들고 손쉽게 관리하며 .. 2021. 3. 30.
[GCP] Dataflow ✨Google Cloud Platform의 Data Processing과 관련한 Product✨ Data collection : Pub/sub, Transfer service, Transfer appliance Data transform : Dataflow, Dataproc, Dataprep Data storage : BigQuery, bigtable, GCS Data analysis : BigQuery Data ochestration : Composer 🧀GCP Dataflow 란? 다양한 데이터 처리 패턴을 개발하고 실행하기위한 통합 프로그래밍 모델 및 관리 서비스입니다. Cloud Dataflow에는 데이터 처리 워크 플로를 정의하기위한 SDK와 Compute Engine, BigQuery 등과 같.. 2021. 3. 30.
[GCP] Transfer appliance ✨Google Cloud Platform의 Data Processing과 관련한 Product✨ Data collection : Pub/sub, Transfer service, Transfer appliance Data transform : Dataflow, Dataproc, Dataprep Data storage : BigQuery, bigtable, GCS Data analysis : BigQuery Data ochestration : Composer 🧀GCP Transfer Appliance 란? Transfer Appliance는 비즈니스 운영 중단 없이 수백 테라바이트에서 1페타바이트까지 대량의 데이터를 Google Cloud Platform으로 안전하게 마이그레이션하는 데 사용할 수 있는 하드.. 2021. 3. 30.
[GCP] Transfer Service ✨Google Cloud Platform의 Data Processing과 관련한 Product✨ Data collection : Pub/sub, Transfer service, Transfer appliance Data transform : Dataflow, Dataproc, Dataprep Data storage : igQuery, bigtable, GCS Data analysis : bigQuery Data ochestration : Composer 🧀GCP Transfer Service 란 BigQuery Data Transfer Service는 정해진 일정에 따라 관리되는 방식으로 BigQuery로 데이터를 자동 전송합니다. 그러면 분석팀에서 코드를 단 한 줄도 작성하지 않고 BigQuery 데이.. 2021. 3. 30.
[GCP] Pub/sub ✨Google Cloud Platform의 Data Processing과 관련한 Product✨ Data collection : Pub/sub, Transfer service, Transfer appliance Data transform : Dataflow, Dataproc, Dataprep Data storage : igQuery, bigtable, GCS Data analysis : bigQuery Data ochestration : Composer 🧀 GCP의 Pub/Sub 란 Pub/Sub는 클라우드 기반의 대용량 메시지 큐이다. 흔히 사용하는 JMS나 Kafka의 클라우드 버전 (별도의 설치나 운영이 필요 없음). 이벤트를 처리하는 서비스에서 이벤트를 생성하는 서비스를 분리하는 비동기 메시징 서.. 2021. 3. 30.
728x90