전체 글 112

패스트캠퍼스X야놀자: 백엔드 개발 부트캠프-위치기반 장소 검색 어플리케이션

과제 설명목적카카오 로컬 REST API 중 키워드로 장소 검색하기, 카데고리로 장소 검색하기 API를 활용하여 자신을 위치를 기반으로 특정 위치 내의 장소를 검색하는 java 애플리케이션을 개발합니다.작업 옵션 지정된 반경 내에서 주유소를 검색지정된 반경 내에서 약국을 검색 ✅ 구현 내용카카오 API 키 획득카카오 개발자에 로그인하여 어플리케이션 생성생성한 어플리케이션의 REST API 메모 로컬 REST API 사용지도/로컬 중 로컬 REST API문서를 참고하여 키워드로 장소 검색하기와 카테고리로 장소 검색하기를 활용하여 개발 요청과 응답 구조에 대한 예제 코드를 확인하여 개발한다. JAVA 어플리케이션 구현특정 위치 키워드, 검색 반경 입력이를 기반으로 위도, 경도 추출 → 키워드로 장소 검색하기..

인덱스란 ?

🔗 참고자료 [SQL] Index(인덱스)Index는 RDBMS에서 검색 속도를 높이기 위한 기술이다.TABLE의 컬럼을 색인화(따로 파일로 저장)하여 검색시 해당 TABLE의 레코드를 Full Scan 하는게 아니라 색인화 되어있는 INDEX 파일을 검색하여 검색속도를 빠르게 한다.RDBMS에서 사용하는 Ihttps://velog.io/@gillog/SQL-Index인덱스[MySQL] B-tree, B+tree란? (인덱스와 연관지어서)B-tree는 인덱스를 이루고 있는 자료구조의 일종이다. B-tree에서 'B'는 정확히 어떤 의미라고 밝혀진 바는 없다. 아마 'Balanced'를 의미하는 'B'가 아닐까라는 추측만 있다. MySQL의 DB engine인 InnoDB는 B+tree로 이뤄져있는데, B..

DBMS & RDBMS

출처 : https://www.simplilearn.com/tutorials/dbms-tutorial/dbms-vs-rdbmsDBMS (DataBase Management System)사용자와 DB 사이에서 사용자의 요구에 따라 데이터를 생성 및 DB를 관리해주는 소프트웨어 RDBMS(Related DataBase Management System)관계형 데이터 모델에 기초를 둔 데이터 베이스를 관리해주는 소프트웨어 DBMSRDBMS데이터를 파일로 저장데이터를 테이블 형식으로 저장계층적 형식 or 탐색 형식으로 저장Primary Key라는 식별자가 있고, 테이블 형식으로 저장함 표준화 x표준화 o데이터보관에 있어서 보안 제공 x- ACID를 위한 무결성 제약을 정의함 - A (Atomocity) : 원자성..

동기화/동기화기법

💡Q. 동기화란?: 특정 자원에 접근할 때 한개의 프로세스만 접근하게 하기: 프로세스들 사이의 수행 시기를 맞추는 것 실행 순서 제어를 위한 동기화프로세스를 올바른 순서대로 실행하기상호 배제를 위한 동기화동시에 접근해서는 안되는 자원에 하나의 프로세스만 접근하게 하기ex ) 생산자와 소비자 문제 : 프로세스나 스레드가 자신만의 독자적인 메모리 주소공간을 사용하지 않고 공유하는 메모리 주소공간이 있을 경우 발생하는 문제⇒ count(총합)이란 데이터를 공유하고 있기에 문제 [상호 배제를 위한 동기화의 3가지 원칙]상호배제 : 한 프로세스가 임계구역에 진입했다면 다른 프로세스는 임계 구역에 들어올 수 없다.진행 : 임계 구역에 어떤 프로세스도 진입하지 않았다면 임계구역에 진입하고자 하는 프로세스는 들어갈 수..

[JAVA] 입출력Stream이란?

Stream이란?통로역할 단방향으로 데이터가 흐르는 것으로, 입력 스트림에서 출력스트림을 통해 데이터를 입출력한다. Stream의 종류바이트 Stream : 그림, 멀티미디어, 문자 등 모든 종류의 데이터를 입출력할 때 사용바이트입력스트림 : InputStream - read() : 바이트 단위로 읽기바이트출력스트림 : OutputStream - writer() : 바이트 단위로 쓰기(출력)ex) 파일에서 바이트데이터를 읽는다? FileInputStreamex) 파일에서 바이트데이터를 저장하려면? FileOutputStreamint data = System.in.read(); System.out.println((char)data); int -> byte() byte() -> int //너무 복잡해져버림 ..

HTTP/HTTPS/대칭키/비대칭키

💡Q. HTTP란? Hyper Text Transfer Protocol서버 http와 클라이언트 http 모델간의 데이터를 주고받기 위한(통신) 프로토콜이다. (80번 포트)(웹서버) ↔ (브라우저)간의 웹페이지 전달을 위해 사용됨 [HTTP 과정]HTTP는 Transport Protocol 중 TCP를 사용⇒ 데이터 전송 이전에 미리 연결을 맺는 메시지(ACK)를 교환하는 연결 지향 방식 사용HTTP 서버는 80번 포트를 사용TCP 연결을 위한 메시지(ACK) 가 완료되면 ⇒ HTTP 메시지들을 서버와 클라이언트 간의 송수신 진행HTTP 메시지 교환이 끝나면 ⇒ TCP 연결 종료 [HTTP 특징]stateless : 웹페이지가 클라이언트에게 어떻게 해석되는지는 아무런 상관 x (전달만!한다)서버는 이전..

CS/네트워크 2023.08.10

3-way & 4-way Handshaking

TCP 3 - Way HandShaking** 일반적인 공격들은 TCP 연결관리의 취약성을 악용한다. TCP/IP 프로토콜을 이용해서 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정 💡과정 요약Client - TCP SYN → ServerServer - TCP SYN ACK → ClientClient - TCP ACK → Server SYN(Synchronize Sequence Numbers) ACK(Acknowledgment) 전반적인 설명클라이언트 애플리케이션 프로세스 → 서버에 있는 프로세스와 연결하고 싶은 fact — tell → 클라이언트 TCP [3-Way HandShaking]1단계클라이언트 TCP는 서버 TCP..

CS/네트워크 2023.08.09

그래프

23.08.02그래프그래프 종류그래프 구현그래프 순회BFS (너비 우선 탐색)BOJ_9934 : BFS를 ‘트리’로 구현한 문제BFS를 ‘그래프’로 구현하기 그래프Vertex와 Edge로 구성된 자료구조 ex ) 네비게이션 길찾기, 게임 내 캐릭터 이동, 지식 그래프 그래프 종류방향 그래프방향이 있는 순서대로만 루트 무방향 그래프가중치 그래프 각 vertex에 가중치가 존재 bellmandikstra루프 그래프순환 그래프 cycle이 존재하는 그래프 그래프 구현인접행렬이차원 배열1 : 연결 || 0 : 연결 x 인접 리스트vertex개수 만큼의 list 사용인접행렬에 비해…메모리 공간을 효율적으로 사용가능노드를 삭제하거나, 추가하는 것도 인접행렬보다 수월BUT VERTEX간의 연결관계를 확인하는건 인접행..

알고리즘 2023.08.09

TCP/UDP

TCP/UDP 정의 transport Layer(전송계층)에서 사용하는 프로토콜 전송계층?⇒ 데이터의 전달 송신자(보내는 사람), 수신자(받는 사람)을 연결하는 통신서비스를 제공하는 계층 데이터를 보내기 위해 사용하는 프로토콜 = TCP/UDP TCP (Transmission Control Protocol) 전송을 제어하는 프로토콜 ⇒ 인터넷상에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜 IP : 데이터의 배달 TCP : 데이터의 패킷을 추적 및 관리 TCP만의 특징 ⇒ 연속성보다 신뢰성있는 전송이 중요할 때에 사용하는 프로토콜 연결 지향 방식으로 패킷 교환 방식을 사용 └ 패킷을 전송하기 위한 논리적 경로를 배정함 높은 신뢰성을 보장 흐름 제어 및 혼잡 제어 3-way han..

CS/네트워크 2023.08.09