전체 글 171

5. HTTP 메서드 활용 - HTTP 웹 기본 지식

이 글은 배민 기술이사 김영한 이사님의 인프런 강의 "모든 개발자를 위한 HTTP 웹 기본 지식" 을 기반으로 작성되었습니다. 문제 시 삭제 조치하겠습니다. 목차는 아래와 같습니다. 클라이언트에서 서버로 데이터 전송 HTTP API 설계 예시 클라이언트에서 서버로 데이터 전송 a. 데이터 전달 방식 데이터 전달 방식은 크게 2가지 경우로 나뉜다. 1) 쿼리 파라미터를 통한 데이터 전송 GET 주로 정렬 필터(검색어) 2) 메시지 바디를 통한 데이터 전송 POST, PUT, PATCH 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 그렇다면 아래 4가지 상황에서의 데이터 조회 및 데이터 전송을 살펴봅시다. b. 4가지 상황 1) 정적 데이터 조회 이미지, 정적 텍스트 문서 2) 동적 데이터 조회 주로 ..

4. HTTP 메서드 - HTTP 웹 기본 지식

이 글은 배민 기술이사 김영한 이사님의 인프런 강의 "모든 개발자를 위한 HTTP 웹 기본 지식" 을 기반으로 작성되었습니다. 문제 시 삭제 조치하겠습니다. 목차는 아래와 같습니다. HTTP API 을 만들어보자 HTTP 메서드 - GET, POST HTTP 메서드 - PUT, PATCH, DELETE HTTP 메서드의 속성 HTTP API 을 만들어보자 a. 요구사항 회원 정보 관리 API를 만들어라. 1) 회원 목록 조회 2) 회원 조회 3) 회원 등록 4) 회원 수정 5) 회원 삭제 b. API URI 설계1 API 기능에 대응하는 직관적인 이름으로 URI 를 설계하면, 다음과 같이 URL을 모두 따로 만들어야 한다. 1) 회원 목록 조회 - /read-member-list 2) 회원 조회 - /r..

3. HTTP 기본 - HTTP 웹 기본 지식

이 글은 배민 기술이사 김영한 이사님의 인프런 강의 "모든 개발자를 위한 HTTP 웹 기본 지식" 을 기반으로 작성되었습니다. 문제 시 삭제 조치하겠습니다. 목차는 아래와 같습니다. 모든 것이 HTTP 클라이언트 서버 구조 Stateful, Stateless 비연결성 (Connectless) HTTP 메시지 모든 것이 HTTP 일반적으로 휴대폰, 컴퓨터 등에서 필요한 데이터는 서버에 요청하여 받아온다. 네트워크를 통해 서버로부터 데이터를 가져오기 위한 통신으로 크게 HTTP 통신과 Socket 통신 2가지가 있다. a. HTTP(HyperText Transfer Protocol) HTTP는 하이퍼 텍스트를 주고 받기 위한 규칙(통신 규약)이다. b. HTTP 메시지에 모든 것을 전송 1) 거의 모든 형태..

2. URI와 웹 브라우저 요청 흐름 - HTTP 웹 기본 지식

이 글은 배민 기술이사 김영한 이사님의 인프런 강의 "모든 개발자를 위한 HTTP 웹 기본 지식" 을 기반으로 작성되었습니다. 문제 시 삭제 조치하겠습니다. 목차는 아래와 같습니다. URI 웹 브라우저 요청 흐름 URI a. URI? URL? URN? 1) URI (Uniform Resource Identifier) 쉽게 말하면 URI = URL + URN 입니다. 위의 단어들을 하나씩 떼어서 해석하면 아래와 같아요. Unifrom : 리소스 식별하는 통일된 방식 Resouce : 자원 = URI로 식별할 수 있는 모든 것(말 그대로 모든 것입니다. 제한이 없어요.) Identifier : 다른 항목과 구분하는데 필요한 정보 그렇다면 URL 과 URN 이 무엇일까요? 2) URL(Unifrom Resou..

1. 인터넷 네트워크 - HTTP 웹 기본 지식

이 글은 배민 기술이사 김영한 이사님의 인프런 강의 "모든 개발자를 위한 HTTP 웹 기본 지식" 을 기반으로 작성되었습니다. 문제 시 삭제 조치하겠습니다. 목차는 아래와 같습니다. 인터넷 통신 IP(인터넷 프로토콜) TCP, UDP PORT DNS 인터넷 통신 a. 인터넷에서 컴퓨터 둘은 어떻게 통신할까? ) 만약, 클라이언트와 서버가 가까이 있으면 케이블로 2PC를 연결하여 통신할 수 있다. 하지만, 클라이언트와 서버의 거리가 멀면 그 사이에 있는 인터넷망을 통해서 Hello,world 라는 메시지를 보내야 한다. b. 복잡한 인터넷 망 그런데 인터넷망은 너무 복잡합니다! 클라이언트(출발지)에서 인터넷 망 내부의 수많은 중간 노드(서버)를 거쳐 메시지를 서버(목적지)로 전달해야 한다. 그럼 어떤 규칙..

자바 코딩 테스트 - 슬라이딩 윈도우. 백준 12891, 11003 문제

'Do it! 알고리즘 코딩테스트 자바 편' 교재로 공부한 내용을 정리했습니다 슬라이딩 윈도우 슬라이딩 윈도우 알고리즘은 2개의 포인터로 범위를 지정한 다음 범위(window) 을 유지한 채로 이동(sliding) 하면서 문제를 해결한다. 위 문장만 읽어봐도 투 포인터 알고리즘과 매우 비슷하다는 것을 알 수 있을 겁니다! 원리도 간단하므로 바로 백준 문제 2개를 풀어보면서 윈도우 알고리즘의 개념과 원리를 공부해 봅시다! 백준 12891 번 https://www.acmicpc.net/problem/12891 12891번: DNA 비밀번호 평소에 문자열을 가지고 노는 것을 좋아하는 민호는 DNA 문자열을 알게 되었다. DNA 문자열은 모든 문자열에 등장하는 문자가 {‘A’, ‘C’, ‘G’, ‘T’} 인 문..

자바 코딩 테스트 - 투 포인터. 백준 2018, 1940, 1253

'Do it! 알고리즘 코딩테스트 자바 편' 교재로 공부한 내용을 정리했습니다 투 포인터는 2개의 포인터로 알고리즘의 시간 복잡도를 최적화 시키는 알고리즘이다. 알고리즘이 매우 간단하여 문제를 풀면서 이해를 해봅시다. 백준 2018 번 https://www.acmicpc.net/problem/2018 2018번: 수들의 합 5 어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한 www.acmicpc.net 1. 문제분석 먼저 시간 복잡도 분석으로 사용할 알고리즘의 범위부터 줄여야 한다. 주어진 N 의 최대값은 10,000,000 이다. 만약 이 ..

자바 코딩 테스트 - 구간 합. 백준 11659 , 11660, 10986 문제

'Do it! 알고리즘 코딩테스트 자바 편' 교재로 공부한 내용을 정리했습니다 구간 합 구간 합은 합 배열을 이용하여 시간 복잡도를 더 줄이기 위해 사용하는 것이다. 코딩 테스트에서 자주 사용되므로 잘 알아둡시다. 먼저 합 배열이 무엇인지 정의합시다. 만약 배열 A 가 있을 때 합 배열 S는 아래와 같다. S[i] = A[0] + A[1] + A{2] + … A[i-1] + A[i] 즉, S[i] 는 A[0] 부터 A[i] 까지의 합이다. 합 배열은 기존 배열을 전처리한 배열이라고 할 수 있다. 만약 이렇게 합 배열을 구해 놓으면 기존 배열의 일정 범위의 합을 구하는 시간 복잡도가 O(N) 에서 O(1) 으로 줄어든다. 예를 들어서 A[i] ~ A[j] 까지의 배열 합을 구해야 한다고 합시다. 합 배열 ..

자바 코딩 테스트 - 배열과 리스트, 백준 11720, 1546 문제

'Do it! 알고리즘 코딩테스트 자바 편' 교재로 공부한 내용을 정리했습니다. 배열과 리스트 배열 메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조 배열의 특징 Index 을 사용하여 값에 바로 접근할 수 있다. 새로운 값을 삽입하거나 특정 인덱스에 있는 값을 삭제하기 어렵다. 값을 삽입/삭제 하려면 해당 인덱스 주변에 있는 값을 이동시키는 과정이 필요하다. 배열의 크기는 선언할 때까지 지정할 수 없으며 한 번 선언하면 크기를 늘리거나 줄일 수 없다. 구조가 간단하여 코딩 테스트에서 많이 사용한다. 리스트 값과 포인터를 묶은 ‘노드’를 포인터로 연결한 자료구조 리스트의 특징 인덱스가 없어서 값에 접근하려면 Head Pointer 에서부터 순서대로 접근해야 한다. 포인터로 연결되어 있으므로 데이터 ..

자바 예외처리란 무엇인가

프로그래밍을 할 때 "예외가 많이 발생할 것 같은 case 니까 예외 처리 잘 해야 될 것 같은데?" 라는 말을 자주 들은 적이 있다. 그래서 예외가 일어날 것 같은 상황에서 try - catch 문(java에서)으로 예외를 처리하고는 했는데 정작 이 경우 if 조건문으로 처리하는 것과 무엇이 다른지 정확히 알지 못하는 것 같았다. 그래서 자바 예외 처리를 자세히 공부하고 정리하려고 한다. 기본적인 내용은 "Do it! 자바 프로그래밍 입문" 교재를 참고하였습니다. 예외 클래스 시스템에서 오류는 보통 프로그래머가 코드 작성 실수로 인해 발생하는 'Compile Error' 와 프로그램이 실행되는 도중 의도하지 않은 동작을 하여 발생하는 'Runtime Error' 로 나뉜다. 그리고 RuntimeErro..

Java 2022.12.31