Computer Science

    브라우저에서 google.com을 요청할 때 통신 과정이 어떻게 이루어질까?

    과정 1분 요약 1. 사용자가 웹 브라우저를 통해 google.com을 입력한다. 2. url 주소 중 도메인 네임 부분을 DNS 서버에 검색한다. 3. DNS 서버에서 해당 도메인 네임에 해당하는 IP 주소를 찾아 사용자가 입력한 url 정보와 함께 전달한다. 4. 브라우저는 HTTP 프로토콜을 사용하여 요청 메시지를 생성하고 HTTP 요청 메시지는 TCP/IP 프로토콜을 사용하여 서버로 전송한다. 5. 서버는 응답 메시지를 생성하여 다시 브라우저에게 데이터를 전송한다. 6. 브라우저는 응답을 받아 파싱하여 화면에 렌더링한다. 설명 2번 과정부터 설명해보자. 브라우저는 사용자가 입력한 google.com에 상응하는 ip 주소를 찾기 위해 dns 기록 캐시를 확인한다. DNS는 웹 사이트의 이름(URL)..

    AWS Bastion SSH-Keygen And Install ClamAV

    ssh-keygen -t rsa //명령 Generating public/private rsa key pair. Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa): Enter passphrase (empty for no passphrase): 파일을 저장할 별도의 디렉토리를 입력하지 않으면 기본 디렉토리에 저장한다. passphrase는 키의 비밀번호로, 암호화되어 키 생성에 사용된다. 따라서 둘 다 따로 작성하지 않고 Enter 키를 이용하여 넘어가기만 해도 ssh-key가 제너레이트 된다! 또한 우분투에서 sudo freshclam 실행 시 다음과 같은 에러가 나올 때 해결 방법은 다음과 같다. WARNING: Ignoring depere..

    [UML] UML 기본 정리

    Usecase사용자가 어떤 목적을 달성하기 위해 시스템과 주고 받는 전형적인 교류를 Usecase라 한다. usecase는 규모 면에서 다양하게 변활 수 있다. 중요한 것은 usecase는 사용자가 이해할 수 있고 사용자에게 어떤 가치를 주는 기능을 의미한다. 우리는 구축하고 있는 시스템에서 사용될 수 있는 잠재적 usecase들을 알아내는 것이 중요하다. 하지만 usecase가 자세할 필요는 없다. (어쩌면 유즈케이스는 요구사항으로 볼 수 있을 듯 하다.) Domain modelUML Distilled 도서에서 발췌한 예시를 통해 도메인에 대해 알아보자. 고객들은 여러 사이트에 흩어져 있고 우리는 이들 사이트에 여러 가지 서비스를 제공한다. 현재 상태로는 고객은 모든 서비스에 대한 청구서를 주어진 사이..

    객체지향 설계에서 주로 사용할 수 있는 디자인 패턴 정리

    전략 패턴 (Strategy Pattern) 서로 다른 정책이 한 코드에 섞여있는 경우 (한 메서드에) 전략 패턴을 적용할 수 있다. 전략 패턴은 특정 콘텍스트에서 알고리즘(전략)을 별도로 분리하는 설계 방법이다. 여기서 콘텍스트와 전략에 대해서 알아보자. 먼저, 콘텍스트는 핵심 기능 자체의 책임을 갖고 있는 부분을 의미한다. 예를 들어 계산 정책에 있어 첫 손님에게는 50% 할인, 남은 과일을 가져가는 손님에게는 30% 할인이 들어간다고 할 때, 여기서 핵심적인 부분은 어쨌든 계산이다. 어떤 할인 정책을 사용하는냐는 방법의 문제이고, 우리는 그 방법을 적용해 계산을 해야한다. 따라서 위 예시에서 콘텍스트는 계산 기능이 될 것이다. 다음으로 전략이란 공통된 부분을 추상화하고 있는 부분이다. 위 예시에서 ..

    [정보처리기사] 파트별 요약

    문제 풀다 틀린 내용 위주로 요약한 내용입니다! 모든 내용을 담고 있지 않다는 점 유의해주시고, Ctrl+F로 필요한 내용만 찾아 보시는 것을 추천 드립니다 😄 Part.1 소프트웨어 설계 스크럼 개발 프로세스 제품 백로그 설정 -> 스프린트 백로그 설정 -> 스프린트 수행 -> 스프린트 회고 -> 데일리 미팅 수행 스크럼의 특성 특정 언어나 방법론에 의존적이지 않으며 넓은 응용 범위의 개발 기법 소프트웨어 개발 방법론 종류 구조적 방법론: 폭포수 모델 정보공학 방법론: 데이터나 모델링을 기반으로 한 프로토타입의 개발 방법론 객체지향 방법론 컴포넌트 기반 방법론 통신 프로토콜 기본 구성 요소 구문, 타이밍, 의미 이 타이밍에 이 말은 무슨 뜻이지? 사물의 유형 구조 사물: 시스템의 개념적, 물리적 요소 ..

    All About Java Optional

    예상치 못한 Null Pointer Exception에 대응하기 위해, 우리는 가끔 이런 코드를 짜곤 합니다. if (a != null && a.getA() != null) { // TO DO }이렇듯 null은 코드를 길어지게 하지만 꼭 막아야하는 불편함을 제공하죠. 여기서, 우리는 자바 8에서 도입된 Optional 을 사용할 수 있습니다. Optional 객체 생성하기 먼저, 반드시 값이 있어야하는 객체의 경우에는 다음과 같이 생성할 수 있습니다. Optional optional = Optional.of("hi");값이 null일 수도 있는 경우에는 다음과 같이 객체를 생성할 수 있습니다. Optional optioanl = Optioanl.ofNullable(null);그렇다면, 비어있는 Opti..

    @Scheduled 와 함께 Cron식 사용하기

    @Scheduled 어노테이션 @Component @Slf4j public class Scheduler { @Scheduled(////) public void fixedRateTest() { log.info(">>>>> Schedule"); } @Scheduled 어노테이션과 함께 사용할 수 있는 인자들은 다음과 같다. fixedRate = 2000 // 수행 시작 기점, 2초 후 실행 fixedDelay = 2000 // 수행 종료 기점, 7초 후 실행 cron = "0 0 10 * * *" // 매일 오전 10시 실행 여기서, Cron 표현식에 대해 더 알아보자면, Cron 표현식 @Scheduled(cron = "0 0 10 * * *") // 매일 10시 실행 @Scheduled(cron = "0..