분류 전체보기 607

[백준, 자바, 2512번] 예산(이분 탐색)

풀이진짜 단순한 이분 탐색 문제로각 지방 예산 요청을 정렬 후 이분 탐색 하여 해결 import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); int[] li = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray(); ..

알고리즘 2024.08.24

[백준, 자바, 2110번] 공유기 설치(이분 탐색)

풀이뭔가 문제를 제대로 이해하지 못했어서 시간이 좀 더 걸린 문제로문제 해결 방법은 정말 단순하게 이분 탐색 문제인데왠지 모르게 지난 풀이 방법으론 해결 방법에 대한 뎁스가 한 개 더 있는 듯한 느낌이었어서더 꼬이게 되어버림...그리고 이분 탐색의 결과 도출에 대한 것으로 하나 상기된 것은결과가 나왔을 경우 계속해서 탐색할 때같을 경우와 부족할 경우를 함께 묶어 처리를 하는 것을 다시 상기하게 되었음. import java.io.*;import java.util.*;public class _2110 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new I..

알고리즘 2024.08.24

[개발 지식] HTTP 응답 상태 코드(100, 200, 300, 400, 500)

1. 100 Continue100 Continue는 클라이언트가 요청을 계속해도 괜찮다는 서버의 응답을 의미한다.이 상태 코드는 요청의 일부로 큰 데이터를 전송할 때 사용된다.클라이언트가 서버에 요청을 보내기 전에, 서버가 요청의 초기 부분을 검토하고 요청을 계속 진행해도 좋다고 판단한 경우에 사용된다.용도: 클라이언트가 큰 요청 본문을 전송하기 전에 서버가 요청의 헤더를 검토하고,          요청이 진행될 수 있음을 알려준다.예시: 클라이언트가 Expect: 100-continue 헤더를 포함해 요청을 보내면,          서버는 이 상태 코드로 응답하여 요청을 계속할 수 있음을 알린다.2. 200 OK200 OK는 요청이 성공적으로 처리되었음을 나타내는 가장 일반적인 상태 코드이다.서버가 클..

개발 지식 2024.08.23

[개발 지식] 로컬 스토리지 vs 쿠키

로컬 스토리지(Local Storage)와 쿠키(Cookies)는 웹 브라우저에서 클라이언트 측 데이터를 저장하는 두 가지 주요 방법이다.각각의 특징과 차이점을 이해하면 웹 애플리케이션에서 어떤 저장 방식을 선택할지 결정하는 데 도움이 된다.1. 로컬 스토리지 (Local Storage)로컬 스토리지는 웹 브라우저에서 클라이언트 측 데이터를 저장할 수 있는 메커니즘으로, 다음과 같은 특징이 있다:저장 용량: 브라우저마다 다르지만, 일반적으로 5MB에서 10MB까지 데이터를 저장할 수 있다.만료 시간: 데이터는 명시적으로 삭제되거나 브라우저 캐시를 지우기 전까지 유지된다. 세션이나 만료 시간이 설정되지 않는다.데이터 접근: 자바스크립트를 통해 클라이언트 측에서 쉽게 접근할 수 있다. localStorage..

개발 지식 2024.08.23

[개발 지식] Sock.js와 Stomp.js 관계

Sock.js와 Stomp.js를 함께 사용했던 이유와 요즘은 Stomp.js만 사용해도 괜찮은 이유웹 소켓(WebSocket)은 클라이언트와 서버 간의 양방향 통신을 가능하게 하는 프로토콜이다.이 과정에서 Sock.js와 Stomp.js라는 라이브러리를 함께 사용하는 것이 일반적이었다.왜 두 라이브러리를 함께 사용했는지, 그리고 요즘은 Stomp.js만으로도 충분한 이유를 살펴보겠다.1. Sock.js와 Stomp.js를 함께 사용했던 이유Sock.js는 웹 소켓을 지원하지 않는 브라우저에서도 폴백(fallback) 메커니즘을 통해 안정적인 통신을 제공하기 위해 사용되었다.웹 소켓을 직접 지원하지 않는 환경에서는 **XHR(Long Polling)**이나 Iframe 같은 기술로 대체하여 서버와 통신을..

개발 지식 2024.08.23

[개발 지식] SSE(Server-Sent Events) vs Sock.js

SSE(Server-Sent Events)와 Sock.js는 모두 클라이언트와 서버 간의 실시간 통신을 가능하게 하지만, 사용하는 기술과 목적이 다르다.이 두 가지 기술의 차이점과 각각의 구현 기능에 대해 알아보자.1. SSE(Server-Sent Events)SSE는 서버에서 클라이언트로 단방향 스트림을 전송하는 기술이다.주로 서버가 클라이언트에게 지속적으로 데이터를 푸시해야 하는 상황에서 사용된다.작동 방식: 클라이언트가 서버에 연결을 요청하면, 서버는 text/event-stream 형식의 데이터를 지속적으로 전송한다.클라이언트는 이 스트림을 받아들이며, 실시간으로 업데이트되는 데이터를 처리할 수 있다.연결이 끊어지면 클라이언트는 자동으로 다시 연결을 시도한다.장점: HTTP 기반이라 브라우저 호환..

개발 지식 2024.08.23

[개발 지식] CSR vs SSR

CSR(Client-Side Rendering)와 SSR(Server-Side Rendering)의 차이점웹 개발에서 CSR과 SSR은 웹 페이지를 렌더링하는 두 가지 주요 방법입니다. 이 둘의 차이점은 페이지가 렌더링되는 위치와 시점에 있습니다. 각각의 특징과 차이점을 알아보고, 예시를 통해 이해해보겠습니다.1. CSR (Client-Side Rendering)CSR은 클라이언트 측, 즉 브라우저에서 웹 페이지를 렌더링하는 방식입니다. 이 방법은 주로 현대적인 프론트엔드 프레임워크(예: React, Vue.js)에서 사용됩니다.작동 방식: 서버는 단순히 HTML과 JavaScript 파일을 클라이언트(브라우저)에게 전송합니다.                  이후 브라우저가 JavaScript를 실행하여..

개발 지식 2024.08.22

[백준, 자바, 10989번] 수 정렬하기 3 - 도수 정렬(Counting Sort)

풀이뭔가 간단하게 사용하는 sort() 메서드들로는 메모리 초과가 발생하기에 찾아보니도수 정렬이라는 걸 활용해야한다고 했다.그래서 다른 포스팅된 게시글을 확인했을땐 뭔가 어렵게 느껴져서GPT하고 이야기해보니 정말 간단하게해당 값에 대한 인덱스의 값을 카운팅하는 것으로요소간 비교가 아니기에 모든 데이터를 한 번씩만 접근해서범위 조건이 있는 경우 한정하에 굉장히 빠르게 처리가 가능하다는 걸 알 수 있었다.그래서 아래와 같이 코드를 작성하여 해결물론 기존 도수 정렬 방식과는 다르게 원래 방식은 입력 값에 대한 최댓값 - 최솟값 + 1에 해당하는 만큼 배열을 만들어야 했지만값을 받아오는 대로 넣어 처리하고자 하여 최댓값인 10.000에서 0번째 인덱스를 생각하여10.001만큼 크기를 정하고 이후 입력 값에 해당..

알고리즘 2024.08.03

[개발 지식, 자바] 아스키 코드

아스키 코드 -> 문자문자 -> 아스키 코드 변환 방법에 대해선 파이썬 아스키 코드 -> 문자 => chr()문자 -> 아스키 코드 => ord()자바에선 어떻게 하는지 확인해보니형변환만 하면 되는 간단한 방법으로 아래와 같다아스키 코드 -> 문자 =>  (int)public class AsciiExample { public static void main(String[] args) { char ch = 'A'; int ascii = (int) ch; System.out.println("The ASCII value of " + ch + " is: " + ascii); }}문자 -> 아스키 코드 => (char)public class AsciiExample {..

개발 지식 2024.08.02

[개발 지식, 자바] List vs ArrayList vs LinkedList

자바는 따로 교육을 받은 경험이 없어 기초적인 내용 또한 잘 다져놔야 이후 내용을 잘 습득할 것으로 생각하여 포스팅 자바에서 List, ArrayList, 그리고 LinkedList는 자주 사용되는 컬렉션 클래스들로, 각각의 사용 목적과 특징이 다르다. 이들 중 어떤 것을 선택해야 하는지는 주로 사용 시나리오와 성능 요구 사항에 따라 달라짐. 아래는 각 컬렉션 클래스의 주요 특징과 사용 사례애 대한 설명. 1. ListList는 인터페이스로, ArrayList, LinkedList 등 다양한 리스트 구현체들이 이를 구현합니다.List 자체는 객체를 저장하는 순서가 중요할 때 사용됩니다. 일반적으로 List를 타입으로 사용하고, 실제 구현체는 ArrayList나 LinkedList를 사용합니다.List l..

개발 지식 2024.08.01