이론적인거

    빌드 자동화 도구

    start.spring.io 사이트에서 프로젝트 관리 도구의 선택Android Studio에서 Gradle 프로젝트 관리 도구가 있다. 위 프로젝트 관리도구는 무엇이며, 빌드 자동화는 무엇인지 알아보자프로젝트 관리도구말 그대로 프로젝트를 관리하는 도구이다.프로젝트 관리 기능과 빌드 자동화 기능을 제공한다.프로젝트 관리프로젝트 관련된 라이브러리의 의존성, 버전을 관리한다.프로젝트 산출물을 일관된 구조로 관리한다.프로젝트 디렉토리 구조 관리의존성 관리빌드 프로세스 관리빌드 자동화💡개발자가 반복해서 하는 코딩을 잘 짜여진 프로세스를 통해 자동으로 실행하여, 믿을 수 있는 결과물도 생산해 낼 수 있는 일련의 작업방식 및 방법정리하면 빌드를 포함하여 테스트 및 배포를 자동화 하는 도구이다. 빌드 자동화 도구로는 ..

    OSI 7계층

    OSI 모델💡서로 다른 두 가지 시스템이 하위 구조에 상관없이 통신을 할 수 있도록 만든 국제 표준 모델호스트 간 연결 방식을 표준화했다.7계층각 계층은 서로 간에 독립적이다.어느 한 계층의 변경이 다른 계층에 영향을 미치지 않는다.1. 물리계층전송매체로 비트를 전송하는 기능전송 방식Simplex한 방향으로만 전송이 가능한 통신 형태단방향 통신, 수신측은 송신측에 응답 불가Half Duplex반이중 전송방식통신하는 두 단말이 양방향으로 통신이 가능하나 동시에 전송은 불가능Full Duplex전이중 전송방전송매체대역폭전송매체를 지나는 신호의 최대 주파수와 최저 주파수의 차이대역폭이 높을수록 단위 시간 당 더 많은 데이터 전송 가능꼬임선두 가닥의 구리선을 나선으로 꼬아서 만든 전송매체동축케이블광섬유2. 데이..

    4. 비대칭 암호화 방식

    4. 비대칭 암호화 방식 대칭 암호화 “키 배포” 문제의 보완책 4-1 디피-헬만 키 교환 ★공개 키 교환 방법★ 소수를 이용한 나머지 연산을 사용한다. DH 키 교환 방식 Alice와 Bob 각각 a, b 자신만의 개인키를 가진다. a=6, b=15라 가정한다. 공개된 숫자 p와 g의 설정 누구나 아는 공개된 숫자이다. p = 23, g = 5 숫자 A의 계산과 전송 Alice가 Bob에게 숫자 A를 전송한다. $$ \begin{aligned} \A &= {g^a}\mod{p} \ \&= 5^6 \mod 23 \ \&= 15625 \mod 23 \ \&= 8 \end{aligned} $$ 숫자 B의 계산과 전송 Bob이 Alice에게 숫자 B를 전송한다. $$ \begin{aligned} \B &= g..

    3. 대칭 암호화 방식

    3. 대칭 암호화 방식 특징 암호화 키와 복호화 키가 서로 같음 장점 암호화, 복호화에 걸리는 시간이 짧다. 간단한 방식으로 구현된다. 3-1. DES 64비트 평문을 64비트 암호문으로 암호화하는 기법 암호화와 복호화에 사용하는 키는 56비트 크기 → 8비트는 오류 검출을 위해 사용(패리티 비트) 블록 암호화하려는 하나의 단위 데이터(64비트) Mode 여러 블록 암호화를 반복하는 방법 암호화 과정 라운드 암호화의 각 과정 한 단계 하나의 블록을 32/32(L/R) 로 나눈다. L은 F와 논리합으로 계산한다. R은 그대로 내려온다. L과 R의 위치를 바꾼다. 2.~4.를 16번 반복한다. 16라운드에서 두 블록을 합쳐 결과값을 만든다. 3-2 트리플 DES DES의 대안으로 등장하였다. DES를 3번 ..

    2. 암호의 역사

    2. 암호의 역사 2-1. 스키테일 암호 (aka. 전치법 알고리즘) 육각형의 나무막대와 양피지 리본 메시지 문자 위치 바꾸기 키 : 나무 막대 2-2. 시저암호 단일 치환 알파벳 한 글자를 다른 한 글자로 대체 전사 공격에 취약 키 : 3칸 2-3. 단일 치환 암호: 모노 알파베틱 암호 26개 알파벳을 1:1로 다른 알파벳에 대응 전사 공격에 상대적으로 강함 빈도 분석법에 취약 2-4. 다중 치환 암호: 비즈네르 암호

    1. 암호의 기초

    1. 암호의 기초 암호 중요 정보를 다른 사람들이 해석할 수 없게 하는 방법 평문 암호화 되기 전 메시지 키 외부인이 강제적으로 해독하는 것을 막는 장치 복호화 암호문을 복호화 키를 이용하여 평문으로 바꾸는 과정 대칭 암호화 알고리즘 암호화 알고리즘 암호화 키 == 복호화 키 암호화 키 ≠ 복호화 키

    [디자인 패턴] Observer 패턴

    Observer 패턴 관찰 대상인 특정 객체의 상태가 변하면 그것을 관찰하는 다른 여러 객체에게 이 사실을 자동으로 통지하여 자동 갱신되도록 한다. 예시 엑셀에서 표를 이용하여 그래프를 생성했다고 하자 표의 값이 변경되면 그 즉시 그래프의 모양이 바뀌는것도 Observer패턴의 일부이다. 코드 다음은 Observer 패턴이 적용되지 않은 코드이다. class Table { private int a, b, c; public void update(EData d) { this.a = d.getA(); this.b = d.getB(); this.c = d.getC(); display(); } public void display() { } } class Bar { private int a, b, c; public..

    [디자인 패턴] Template Method 패턴

    Template Method 패턴 개요 특정 기능을 수행하기 위한 처리 단계에 대한 기본 구조가 유사할 때 사용한다. 커피와 차를 만드는 방법을 보자 커피 요리법 차 요리법 1. 물을 끓인다. 1. 물을 끓인다. 2. 끓는 물에 커피를 우린다. 2. 끓는 물에 티백을 적신다. 3. 컵에 따른다. 3. 컵에 따른다. 4. 설탕과 우유를 첨가한다. 4. 레몬을 첨가한다. 커피 요리법과 차 요리법은 매우 유사하다. 이를 이용하여 공통적인 부분을 묶는다면 유지보수성이 올라갈 수 있다. 코드 일단 따로따로 구성된 코드를 확인해보자. class Coffee { void prepareRecipe() { boilWater(); brewCoffee(); pourInCup(); addSugarAndMilk(); } pri..

    [디자인 패턴] Adaptor 패턴

    Adaptor 패턴 개요 기존 클래스를 외부의 표준 클래스나 구매 클래스로 대치하는 것이 필요할 때 적용한다. 코드 기존 Tax 클래스의 findTax() 메소드의 기능 변경을 하기 위해 다른 인터페이스를 생성하고 적용한 코드이다. public interface TaxIF { public void findTax(); } public class Tax implements TaxIF { public void findTax() { } } public class TaxTest { static TaxIF t; public static void main(String[] args) { t = new Tax(); t.findTax(); } } public interface HSTaxIF { public void get..

    [디자인 패턴] Singleton 패턴

    Singleton 패턴 개요 특정 클래스가 단 하나의 객체만을 생성하는 것을 보장 예시 ConnectionPool 코드 public class OrderController{ **private static OrderController oc;** private OrderController() { ... } public static OrderController getOC(){ if(oc==null){ oc = new OrderController(); } return oc; } } 결과 클래스 메소드를 정의하여 객체 생성 없이 클래스 이름만으로 유일한 객체를 생성할 수 있으며 어떤 곳에서도 쉽게 접근 가능하다. 특정 클래스에 대한 단일 개체 생성을 보장한다. 성능 개선, 다중 쓰레드 환경, 컴퓨터 자원을 소비하..