728x90 전체 글71 [Network] HTTP에 대해서 알아보자!! (3편 - HTTP 메시지) 안녕하세요 coding-knowjam입니다. 오늘은 HTTP에서 요청과 응답에 사용되는 중요한 정보인 메시지에 대해서 알아보겠습니다. 1. HTTP Message HTTP Message는 다음과 같은 구조를 가지고 있습니다. (공식문서 : https://datatracker.ietf.org/doc/html/rfc7230#section-3) HTTP-message = start-line *( header-field CRLF ) CRLF [ message-body ] 각각의 라인에 대한 의미는 다음과 같습니다. start-line : 시작 라인으로써 해당 메시지가 요청인지 응답인지에 따라서 다른 형태로 작성됩니다. *( header-field CRLF ) : 메시지는 0개 이상의 헤더 필드는 가질 수 있으며.. Network 2022. 1. 8. [Network] HTTP에 대해서 알아보자!! (2편 - URI, URL, Resource) 안녕하세요 Coding-Knowjam입니다. 오늘은 URI, URL, Resource에 대해서 알아보겠습니다. 1. URI(Uniform Resource Idntifier) 1.1 Resource URI에 대해서 알아보기 전에 Resource(리소스)란 무엇일까요?? 리소스는 우리가 웹 사이트에 접속하거나 API 호출을 할 때, 서버로부터 제공받는 식별 가능한 자원들을 의미합니다. 텍스트나 이미지, 동영상 등과 같은 것들을 말하는 것이죠 이렇게 설명하면 단순히 뭔가. html 이런 문서나. jpg 이런 사진 파일들만 생각하실 수도 있을 겁니다. 그러나 이런 정적인 파일들 외에 개념적으로 식별할 수 있으면 리소스가 될 수 있습니다. 예를 들어 어떤 식당의 메뉴들을 보여줘!라는 요청이 존재하면 여기서 "메뉴.. Network 2022. 1. 6. [Network] HTTP에 대해서 알아보자!! (1편 - 특징) 1. HTTP란? HyperText Transfer Protocol이라고 부르는 HTTP는 무엇일까요? 단순히 한 문장으로 정의하자면, 서버와 클라이언트 간의 정보 전달을 위해 사용하는 프로토콜로써 암호화되지 않은 평문을 전송하며 무상태, 비연결성의 특징을 가지고 있습니다. 그러나 이렇게만 말하면 의미를 잘 모르기도 하고 HTTP에 대해서 잘 알 수 없겠죠? 그러면 HTTP는 어떤 특징을 가지고 있는지 한번 알아보겠습니다. 1.1 클라이언트 - 서버 구조(Client-Server) HTTP는 아래 그림과 같이 클라이언트 - 서버 구조로 이루어져 있습니다. 클라이언트는 서버에 요청을 하고 응답을 대기합니다. 이후 서버는 클라이언트의 요청에 대한 결과를 응답합니다. 이렇게 클라이언트와 서버가 독립적인 구조를.. Network 2022. 1. 5. [Algorithm] 백준 1107(BOJ 1107) 리모컨 문제풀이!! (Java) 안녕하세요 coding-knowjam입니다. 오늘은 백준 온라인 저지에 있는 1107번 리모컨 문제를 풀어보겠습니다. 문제에 대한 링크는 아래에 있으니 문제를 먼저 읽고 와주시길 바랍니다. https://www.acmicpc.net/problem/1107 1. 문제 설명 해당 문제는 모든 경우의 수를 확인해서 풀어야 하는 완전 탐색, 브루트 포스 유형의 문제입니다. 실제로 문제를 풀다 보면 경우의 수를 하나씩 놓치게 되는데 생각보다 고려해야 할 사항이 많습니다. 특별한 알고리즘보다는 경우의 수만 잘 확인하면 풀리는 문제이므로 막상 풀면 어렵지 않았다고 생각하실 겁니다. 먼저 문제에서 요구하는 사항은 현재 채널은 100번이며 이동해야 할 채널까지 리모컨 버튼을 얼마나 최소로 클릭할 수 있느냐입니다. 문제를.. Algorithm & Data Structure/문제풀이 2021. 11. 26. [Algorithm] 백준 17142(BOJ 17142) 연구소 3 문제풀이! (Java) 안녕하세요 coding-knowjam입니다. 오늘은 백준 온라인 저지에 있는 17142번 연구소 3 문제를 풀어보겠습니다. 문제에 대한 링크는 아래에 있으니 문제를 먼저 읽고 와주시길 바랍니다. https://www.acmicpc.net/problem/17142 1. 문제 설명 해당 문제는 많이 풀어봤던 BFS문제를 응용해서 풀면 되는 문제입니다. 기본적으로 문제에서 요구하는 바는 바이러스가 가장 빨리 퍼지는 최소의 시간을 구하는 것이기 때문에, 주어진 바이러스에서 활성 바이러스를 선택하는 모든 경우의 수를 고려해야 합니다. 모든 경우의 수마다 BFS를 수행하여 가장 빨리 바이러스가 퍼졌을 때를 찾으면 되는 문제입니다. 해당 요구사항을 구현할 때 주의할 점은 다음과 같습니다. 비활성 바이러스는 활성 바이.. Algorithm & Data Structure/문제풀이 2021. 11. 14. [Algorithm] 백준 14500(BOJ 14500) 테트로미노 문제풀이!! (Java) 안녕하세요 Coding-Knowjam입니다. 오늘은 백준 온라인 저지에 있는 14500번 테트로미노 문제를 풀어보겠습니다. 문제에 대한 링크는 아래에 있으니 문제를 먼저 읽고 와주시길 바랍니다. https://www.acmicpc.net/problem/14500 1. 문제 설명 해당 문제를 풀고 나서 다른 분들의 풀이를 보니 BFS나 DFS를 활용해서 푸시는 분들도 있었고 테트로미노의 모양 전부를 체크해서 문제를 푸는 분들도 있었습니다. 저는 탐색 알고리즘보다는 19개 모양에 대해서 모두 탐색해서 값을 구하는 방법으로 구현했습니다. 테트로미노 모양을 보면 긴 막대와 정사각형 모양을 제외하고는 모두 공통된 형태에 포함됩니다. 예를 들어 2개의 행과 3개의 열로 이루어진 직사각형에서 첫 행의 1,2번 열의 .. Algorithm & Data Structure/문제풀이 2021. 10. 28. [JPA] JPA를 사용해서 API 개발 시 주의 사항 - 1편(Entity반환) 안녕하세요 Coding-Knowjam입니다. 오늘은 JPA를 사용해서 API를 개발할 때 주의해야 할 점에 대해서 알아보겠습니다. 1. JPA를 사용 한 API 개발 시 주의사항 여러 가지 주의해야 할 점이 있지만 가장 중요한 건 엔티티를 그대로 반환하면 안 된다는 점입니다. 결론을 먼저 말씀드리자면 엔티티를 그대로 반환하면 추후에 엔티티에 변경사항이 발생할 때, API의 스펙이 변하기 때문에 해당 API를 사용하는 여러 곳에서 문제가 발생하게 됩니다. 한번 코드로 살펴보겠습니다. 1.1 클래스 생성 1.1.1 Developer Entity package org.codingnojam.springbootjpastudy.domain; import javax.persistence.Column; import j.. Spring Data 2021. 10. 20. [Algorithm] 백준 4095번(BOJ 4095) 최대 정사각형 문제풀이!!(Java) 안녕하세요 Coding-Knowjam입니다. 오늘은 백준 온라인 저지에 있는 4095번 최대 정사각형 문제를 풀어보겠습니다. 문제에 대한 링크는 아래에 있으니 문제를 먼저 읽고 와주시길 바랍니다. https://www.acmicpc.net/problem/4095 1. 문제 설명 해당 문제는 다이내믹 프로그래밍 유형으로 문제를 풀기 위해서 점화식을 도출해야 합니다. 사실 대부분의 DP문제가 점화식만 도출하면 코드 작성은 간단한데, 이번 문제도 다르지 않습니다. 주어진 2차원 배열의 최대 정사각형의 크기를 map[i][j]로 가정하면 점화식은 다음과 같습니다. map[i][j] = min(map[i-1][j-1], map[i-1][j], map[i][j-1]) + 1 즉, 2차원 배열의 좌측 대각선, 좌측,.. Algorithm & Data Structure/문제풀이 2021. 10. 19. 이전 1 2 3 4 5 ··· 9 다음 728x90