반응형

IT 지식 40

Tistory 블로그 글 작성 Open API (JAVA)

티스토리의 Open API를 사용하여 블로그 글을 작성하는 방법 1탄입니다. 여기서는 자바 언어를 사용하여 구현합니다. Open API를 사용하기에 앞서 몇가지 준비사항이 필요합니다. Open API 앱 등록 권한 허가하기 Access Token 획득하기 Category ID 카테고리 아이디 Open API 앱 등록 아래 링크로 접속하여 앱 등록을 진행해야 합니다. https://www.tistory.com/guide/api/manage/register 앱 등록 화면에서 아래 항목들을 설정하고 등록해주시면 됩니다. 서비스 명: 블로그 이름 서비스 URL: 블로그 주소 서비스 형태: 웹서비스 서비스 권한: 읽기, 쓰기 CallBack: 블로그 주소 (서비스 URL과 동일) 앱 등록을 완료하면 App ID와..

IT 지식/기타 2022.07.28

라이브러리(Library) & 프레임워크(Framework)

라이브러리(Library) & 프레임워크(Framework) 라이브러리(Library)란? 라이브러리란 재사용 가능한 최소 단위 기능 또는 기능들의 집합입니다. 재사용이 필요한 기능을 클래스나 함수로 만들어 언제든지 필요한 곳에서 호출하여 사용할 수 있도록 합니다. 또한, 기능을 사용하기 위해 다른 기능을 필요하지 않아야 합니다. 직접 모든 기능들을 구현하여 사용하기는 어려움이 따르며 미리 만들어진 라이브러리를 사용함으로 개발 시간을 단축시킬 수 있습니다. 직접 구현하기 어려운 기능을 라이브러리를 사용하여 쉽게 구현할 수 있습니다. 라이브러리를 호출하는 것으로 반복적인 코드 작성을 지향할 수 있습니다. 또한, 라이브러리를 사용하여 작성된 코드는 다른 개발자가 보고 이해하기 쉬운 장점이 있습니다. 개인 혹..

IT 지식/기타 2022.01.24

컴퓨터 네트워크 - HTTP & HTTPS

HTTPS란 무엇인가? HTTPS(Hyper Text Transfer Protocol Secure) 안전화된 통신규약으로, http(Hyper Text Transfer Protocol)에 s가 뒤에 붙는데 이 s는 secure의 약자입니다. secure를 한국어로 번역하면 '안전한'입니다. 이름에서도 알 수 있듯이 HTTPS는 HTTP에서 안정성이 추가된것입니다. HTTPS는 클라이언트가 서버로 정보를 보낼때에 중간에서 정보를 가로체거나 변조할 수 없으며, 잘못된 사이트인지 알려주는 기능을 제공합니다. SSL 또는 TSL 기술을 이용하여 텍스트 정보를 서버에 전송할때 암호화하여 전송합니다. 서버에서는 이 암호화된 데이터를 복호화 하여 사용합니다. 암호화된 데이터는 중간에서 가로체더라도(Sniffing) ..

[DB] Database 요약 & 정리 index 인덱스

인덱스는 데이터 조회(SELECT) 시 빠르게 접근하도록 도와주는 역할을 합니다. 인덱스의 존재 유무에 상관없이 데이터 조회의 결과는 동일하지만, 조회 속도를 향상할 수 있습니다. 책에서 목차가 인덱스에 해당한다고 생각하면 됩니다. 책의 목차를 통해 책에서 원하는 페이지를 빠르게 찾을 수 있습니다. 인덱스를 잘 사용하면 효과적이지만, 반대로 잘못 설계한다면 성능을 떨어뜨릴 수도 있습니다. 예를 들어, 동일한 데이터가 많이 존재하며 분산되어 있는 경우, 데이터 조회 시 인덱스 테이블에서 검색을 하는 것이 성능이 더 느릴 수도 있습니다. 또한, 데이터의 변경 작업이 자주 일어날 경우, 인덱스를 사용하는 것이 성능을 떨어뜨릴 수도 있습니다. 인덱스는 처음 생성하는데 많은 시간이 소요될 수 있습니다. 인덱스를 ..

이원 탐색 (BinarySearch) - 자바(JAVA)

c++ 언어로 작성된 수도코드를 자바로 변환한 코드입니다. // 이미 정렬된 배열 a[0]...a[n-1]에서 x = a[j]인 j를 반환 // left, right: 탐색하고자 하는 리스트의 왼쪽, 오른쪽 끝 // 초기값으로 left = 0, right = n-1 // 리스트의 중간 위치 middle = (left + right) / 2로 설정 // a[middle]과 x 비교 // int BinarySearch (int *a, const int x, const int n) int binarySearch(int[] a, final int x, final int n) { // Search the sorted array a[0],...,a[n-1] for x int left = 0, right = n-1;..

선택 정렬 (SelectionSort) - 자바(JAVA)

c++로 작성되어 있는 수도코드를 자바로 변환한 코드입니다. // 정렬되지 않은 정수들 중에서 가장 작은 값을 찾아서 정렬된 리스트 다음 자리에 놓는다. // void SelectionSort(int *a, const int n) void selectionSort(int[] a, final int n) { // n개의 정수 a[0]부터 a[n-1]까지 비감소 순으로 정렬한다. for (int i = 0; i < n; i++) { int j = i; // a[i]와 a[n-1] 사이에 가장 작은 정수를 찾는다. for (int k = i + 1; k < n; k++) if (a[k] < a[j]) j = k; // a[i] 에서부터 a[n-1]까지의 정수 값을 검사한 결과 a[j]가 가장 작은 값 // a..

컴퓨터 네트워크 - TCP 특성, 송수신측 이벤트

TCP의 특성 TCP는 IP의 신뢰성없는 서비스 위에 신뢰성 있는 전송 서비스를 구현한다. cumulative acks 사용한다. 하나의 재전송 타이머를 사용한다. 재전송을 유발시키는 경우는 타임아웃 이벤트와 중복 ACK 수신의 경우이다. point-to-point: 한개의 송신자(one sender), 한개의 수신자(one receiver) 신뢰성reliable): 재전송을 통해 신뢰성있게 한다. 순차 바이트 스트림(in-order byte stream): 순서대로 전송. 어플리케이션 측에서 보면 하나의 스트림이 바이트 단위로 쭉 들어오는 것처럼 보인다. pipelined: ACK없이도 window를 통해 여러 패킷을 보낼 수 있다. 혼잡제어와 흐름제어가 가능하다. send & receive buffe..

컴퓨터 네트워크 - TCP segment structure

TCP segment structure TCP 세그먼트의 헤더는 총 20 bytes로 구성된다. (32bits(4bytes) * 5 = 20 bytes, 옵션은 제외) source port # : 송신측의 포트 번호 dest port # : 수신측의 포트 번호 sequence number : 해당 세그먼트의 첫 번째 데이터 바이트가 응용층에서 보낸 전체 데이터 스트림에서 몇 번째 바이트인가를 표시한다. TCP 연결이 맺어질 때 초기의 sequence number는 송수신 모두 랜덤 하게 선택한다. 예시로 500,000 bytes의 데이터 스트림 파일 전송에서, MSS(maximum segement size, 헤더부분 제외)가 1,000 bytes면 데이터 스트림은 세그먼트 크기가 1,000 bytes인 ..

컴퓨터 네트워크 - TCP Three & Four way handshaking

TCP Connection Management TCP 송신 측과 수신 측은 데이터 세그먼트들을 주고받기 전에 연결을 맺는다. 이때 sequence number, buffer size, flow control info(RcvWindow 등) 등의 변수들이 초기화돼서 설정이 된다. 서버(수신 측)는 특정 포트번호를 주어 소켓을 생성하면 welcomeSocket을 가지고 클라이언트(송신 측) 요청에 대기한다. 클라이언트는 소켓을 생성할 때 연결한 서버의 ID(Domain name), 포트 번호를 주면 바로 서버의 welcomSocket으로 three-way handshaking(연결)을 시작한다. 서버는 클라이언트로부터 요청이 오면 이에 대응하는 한 개의 소켓(connection socket)을 생성하여 클라..

반응형