본문 바로가기

전체보기

(168)
REST API 정리 https://www.youtube.com/watch?v=RP_f5dMoHFc 이 강연의 내용을 정리하고 내 생각을 첨언했습니다. REST 서론 WEB은 정보를 하이퍼텍스트로 연결합니다. WEB이 나온 유래를 생각해봐도 정보 공유의 목적이 컸으니까 어쩌면 당연하겠네요. 그 정보를 표현하는 형식은 HTML 식별자는 URI 전송 방법은 HTTP Protocol입니다. 1990 년 ~ 2000년 대, 웹이 폭발적으로 성장하죠. 당시 대학원생이었던 로이 필딩은 "Web 생태계를 훼손하지 않고 (전송 방법인) HTTP를 향상시킬 방법이 있을까?"를 고민합니다. 그 답이 HTTP Object Model 입니다. 이걸 4년 뒤, 1998년에 REST라는 이름으로 발표합니다. 그리고 2년 뒤에 박사논문으로 발표합니다...
Ajax는 Restful 할 수 있는가. Ajax는 비동기적인 웹 어플리케이션을 제작하려고 XMLHttpRequest 객체를 이용해서 전체 페이지를 새로 고치지 않고도 페이지의 일부만을 위한 데이터를 로드하는 기법이다. 궁금한 건 이 Ajax가 Restful API가 될 수 있냐는 것이다. 걸리는 지점은 REST 중 Uniform Interface의 HATEOAS(Hypermedia as Transfer Engine of Application State) 이다. An application's state is roughly the entire contents of its memory. 여기서 Application State은 응용프로그램을 실행하는데 필요한 항목의 총합을 말한다. 그러니까 결국 이 페이지를 실행하는데 필요한 항목들을 전이하는 엔진..
Garbage Collection(GC)에서 이름이 Eden인 이유 자바의 Garbage Collector는 크게 두 가지로 구성된다. 1. Young Generation, Old Generation. 그 중 Young Generation은 다시 Eden Space, Survival Space0, Survival Space1 으로 이루어진다. 궁금증은 왜 Eden Space일까? 였다 https://stackoverflow.com/questions/5383256/eden-space-name-origin-in-garbage-collection/5383337 'Eden space' name origin in Garbage Collection In Garbage Collection terminology, why is it called 'Eden Space'? Just like..
백준 20055 컨베이어 벨트 위의 로봇(Java) https://www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부�� www.acmicpc.net 삼성 기출문제다.(2021년 상반기용) 주어진 조건대로 구현하면 된다! import java.io.*; import java.lang.*; import java.util.*; public class boj20055 { static int N, K, turn; static int[] conveyor; static ArrayList robots = new ArrayList()..
백준 15653 구슬 탈출 4(JAVA) https://www.acmicpc.net/problem/15653 15653번: 구슬 탈출 4 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 면접 준비때문에 너무 바쁜걸... 간만에 한 문제 풀었다 ㅠㅠ 이 문제는 주어진 조건대로 풀면된다! 간단함! import java.io.*; import java.util.Arrays; import java.util.Objects; import java.util.StringTokenizer; public class boj15653 { static ..
Gmail과 Naver Mail이 이메일 속도에서 차이가 나는 이유는? 개발자 취업준비 오픈카톡방에 속해있다. 발표가 나면 굉장히 빠르게 '오 OO 발표났어요!'라고 소식이 공유된다. 만약 이 발표가 이메일을 통할 경우 꼭 나오는 말이 '어... 전 아직 안왔어요' 였다. 그 이유가 궁금했다. (시간차가 짧으면 ISP 차이라고 생각했을텐데 시간차가 수 분이 나는 경우도 있어서 궁금했다) 나는 이 현상의 원인을 '서버 위치'라고 생각했다. 이 가정의 발단은 '메일을 늦게 받는 분이 대게 GMail을 사용한다는 것'이다. 우선 Email을 보내면 어떤 일이 일어나는지 살펴보자. 우리는 이메일을 쓸 때 UserName @ HostName. TLD 이런 식으로 쓴다. 예를 들면 abcd@gmail.com abcd@naver.com 이런 식이다. 이메일을 쓴 후 Send 버튼을 누르..
백준 13334 철로(JAVA) https://www.acmicpc.net/problem/13334 13334번: 철로 입력은 표준입력을 사용한다. 첫 번째 줄에 사람 수를 나타내는 양의 정수 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 n개의 각 줄에 정수 쌍 (hi, oi)가 주어진다. 여기서 hi와 oi는 −100,000,000이상, 100,000,0 www.acmicpc.net 끝점을 기준으로 정렬하고 우선순위 큐를 활용한다. 끝점을 기준으로 오름차순 정렬을 하면 아래 그림처럼 된다. 이 상태에서 집과 회사 중 더 작은 값을 기준으로 정렬한다. 여기서 유의해야하는게, 무조건 집이 회사보다 왼쪽에 있다고 생각하기 쉬운데 그렇지 않다. 그림으로 보자면 이렇게 두 가지 경우가 가능하다. 그러므로 입력값을 받을 때 대소 비교를..
백준 1938 통나무 옮기기 https://www.acmicpc.net/problem/1938 1938번: 통나무 옮기기 첫째 줄에 주어진 평지의 한 변의 길이 N이 주어진다. (4
백준 1670 정상회담 2 https://www.acmicpc.net/problem/1670 1670번: 정상 회담 2 첫째 줄에 정상 회담에 참가한 사람의 수 N이 주어진다. 이 값은 10,000보다 작거나 같은 짝수이다. www.acmicpc.net 다이나믹 프로그래밍 문제 점화식은 f(n) = { f(n-2) * f(0) } + { f(n-4) * f(2) } + ... + { f(k - m) * f(m-2) } + ... + { f(0) * f(n-2) }다. 예를 들어서 f(4) = f(2) * f(0) + f(0) * f(2) f(6) = f(4) * f(0) + f(2) * f(2) + f(0) * f(4) 이다. 그림을 보며 이해해보자 . 여섯명짜리 악수를 대표로 살펴보자 이렇게 세 가지 경우가 나올 수 있다. 8개..
백준 1219 오민식의 고민(Java) https://www.acmicpc.net/problem/1219 1219번: 오민식의 고민 첫째 줄에 도착 도시에 도착할 때, 가지고 있는 돈의 액수의 최댓값을 출력한다. 만약 오민식이 도착 도시에 도착하는 것이 불가능할 때는 "gg"를 출력한다. 그리고, 오민식이 도착 도시에 도착�� www.acmicpc.net 벨만 포드 알고리즘을 활용한다. 코드를 보면 이해할 수 있을 것 같다. import java.io.*; import java.util.*; public class Main { private static int N; private static int startCity; private static int arriveCity; private static int nTransport; private ..