전체 글 42

백준 3052번 '나머지' (JAVA 11)

백준 3052번 문제 '나머지' 입니다. 수 10개를 입력받아. 이를 42로 나눈 서로 다른 나머지의 개수를 구합니다. 예를 들어, 1부터 10까지 입력했을 경우 1부터 10까지의 수를 각각 42로 나누었을 때 나머지는 1~10까지로 10개 입니다. 그러므로 출력창에 10이 출력되면 됩니다 배열을 이용한 방법으로 문제를 풀었습니다. 전체적인 문제풀이의 방향은 1.서로 다른 나머지의 개수를 구하면 되므로, boolean 배열을 사용합니다. 2. boolean의 default 값은 0이기 때문에, 입력받은 값을 42로 나눈 값에 해당하는 수의 인덱스를true로 바꿉니다. 3. 마지막으로 반복문을 통해 배열에 존재하는 true의 개수를 셉니다. import java.util.Scanner; public cla..

백준 2024.01.07

HTTP API 설계 (GET/POST/PUT/PATCH/DELETE) (김영한 HTTP)

API를 설계할 때 가장 중요한 것은? 리소스 식별 ! 회원 목록 조회 / 회원 조회/ 등록/ 수정 /삭제의 예시를 통해서 공부 리소스란 무엇일까? 예를 들어서. "회원가입을 한다"라고 할때, 회원가입을 하는 것 자체가 리소스가 아니다. 여기서 리소스는 "회원"이다. 때문에 "회원"을 중점적으로 설계해야한다. 또한 이러한 회원은 조회/삭제/등록/수정 할 때 모두 사용되므로 복수단어로 사용하는게 좋다 (이때 "회원"과 같이 상위에 있는 개념은 컬렉션이라고 한다) ex) /create-member (X) ---> /members/{id} (O) 즉, 리소스와 해당 리소스를 대상으로 하는 행위를 분리시키는 것이 중요하다 ->리소스: 회원 ->행위: 조회,등록,삭제,수정 그럼 의문이 하나 생긴다. 조회/등록/삭..

HTTP 2024.01.06

HTTP 서버 (김영한 HTTP)

*공부한 내용을 복습하기 위해 작성한 내용이며, 중간에 옳지 않은 내용이 포함될 수 있음.* 전 시간에 URL을 통한 통신과정을 보며 HTTP 요청 메시지를 주고받는 모습을 볼 수 있었다, 오늘은 HTTP 메시지에 대해서 알아보자. HTTP 메시지에는 정말 많은 것을 담을 수 있다. HTML , TEXT IMAGE, 음성, 영상 파일 JSON, XML (API) 위의 형식 등등 서버간에 데이터를 주고받을 때 대부분 HTTP를 사용한다. HTTP에도 발전 역사가 존재하는데, 그 중 HTTP는 HTTP/1.1 버전으로 가장 중요한 버전이다. (그 외에도 HTTP/2 , HTTP/3 버전이 있는데 HTTP/1.1을 베이스로 성능개선한 버전이다.) TCP / UDP에 대해서도 전 시간에 배웠었는데 HTTP 1...

HTTP 2024.01.06

HTTP URI/URL/URN (김영한 http)

*공부한 내용을 복습하기 위해 작성한 내용이며, 중간에 옳지 않은 내용이 포함될 수 있음.* URI (Uniform Resource Identifier) 번역하면 "통합 자원 식별자" 입니다. URL이라는 용어는 흔하게 들어봤지만 URI 또는 URN은 들어보지 못했을 수 있습니다. URI는 로케이터 (Location), 이름(Name) 또는 둘 다 추가로 분류될 수 있다. 다시 말하면 "URI (자원 식별자)를 URL(위치)로 분류할 것이냐 (URN) 이름으로 분류할 것이냐. " 의 차이 -이름으로 분류하면 URN -위치로 분류하면 URL URL과 URN은 각각 위 이미지와 같은 방법으로 리소스를 식별하는데, URN의 경우 정확한 리소스 식별도 어렵고 찾기도 어렵기 때문에 대부분의 경우 URL의 방법을 ..

HTTP 2024.01.06

HTTP 인터넷 통신 (김영한 http)

*공부한 내용을 복습하기 위해 작성한 내용이며, 중간에 옳지 않은 내용이 포함될 수 있음.* 인터넷에서 컴퓨터 둘은 어떻게 통신을 할까? 클라이언트와 서버간의 상호작용을 통해서, 클라이언트가 원하는 내용을 서버에서 받아오기도 하고 반대로 클라이언트가 작성한 내용을 서버에 저장하기도 한다. 우리는 흔히 인터넷이라는 용어를 사용하며, 클라이언트와 서버간의 통신을 이야기한다. 하지만 이 인터넷이라고 하는 중간 단계는 눈에 보이지 않는 수많은 노드들로 이루어져있고, 단순히 서버까지 가는 경로에도 우리가 알지 못하는 많은 노드들을 거쳐서 정보들이 이동된다. (물론, 그 노드들이 어떻게 흐르는지는 알 필요 없다...) IP 인터넷 프로토콜 그 중에서도 먼저 많이 들어봤을 법한 "IP"를 이용한 통신 방법이 있다. ..

HTTP 2024.01.06

백준 1157번 '단어 공부' (JAVA 11)

백준 1157번 문제인 '단어 공부' 문제입니다. '알파벳 대소문자로 된 단어를 입력받고, 입력한 단어에 사용된 알파벳 중 대소문자 관계없이 가장 많이 사용된 알파벳을 찾아 대문자로 출력하는 문제입니다. 문제를 풀기에 앞서, 풀이 과정을 대략적으로 생각해봅니다. 먼저 대소문자와 관계없이, 사용된 알파벳을 카운트 해야하는 문제이므로, 입력받은 모든 문자열을 대문자 또는 소문자로 변환하는 과정이 필요합니다. 대문자 또는 소문자로 변환한 후, 문자열을 순회하며 사용된 알파벳의 개수를 배열에 저장하고 가장 많이 카운트된 알파벳을 대문자로 출력합니다. 만약 가장 많이 카운트도니 알파벳이 2개 이상이라면 문자열 '?'을 출력합니다. 이제 자세한 과정으로 들어가보겠습니다. import java.util.Scanner..

백준 2024.01.03

백준 1152번 '단어의 개수' (JAVA 11)

백준 1152번인 '단어의 개수'를 나타내는 문제입니다. 단어 개수는 공백을 기준으로 나뉘며, 공백의 개수를 구하여 출력하는 형식으로 풀이를 했습니다. import java.util.Scanner; public class Main { public static void main(String args[]){ Scanner scan = new Scanner(System.in); String w=scan.nextLine().trim(); int count=1; // 공백 if(w.isEmpty()){ System.out.println("0"); } else{ for(int i=0; i

백준 2024.01.03