전체 글 (430) 썸네일형 리스트형 [Java] 동등성 (equals(), hashCode()) 자바에서 동등성(equality)을 보장하는 equals()와 hashCode()가 존재합니다.이 두 메소드는 Object 클래스에서 기본적으로 제공을 하며 객체의 동등성 비교를 할 수 있습니다. equals()두 객체의 참조 동등성(reference equality)을 검사합니다.두 객체가 같은 메모리 주소를 가리키고 있는지 확인을 하며 같다면 true 다르다면 false를 반환하게 됩니다.Object obj1 = new Object();Object obj2 = new Object();System.out.println(obj.equals(obj2)); // false 사실 저는 실제 값이 같아야 equals가 true 일 줄 알았지만 실제로는 같은 주소인지를 확인하는 것이였습니다.이유는 equals를 .. [Java] String, StringBuffer, StringBuilder 차이점 StringString은 자바에서 가장 기본적인 문자열 클래스이며, 불변(immutable)의 특징을 가지고 있습니다.불변이란 한 번 생성된 문자열 객체의 값이 변경되지 않음을 의미합니다.String message = "hello";message += " world";System.out.println(message); // 출력: hello world 위 코드에서 문자열이 변한 것처럼 보이지만, 실제로는 새로운 문자열 객체가 생성된 것입니다.즉, "hello"와 "hello world"라는 두 개의 객체가 메모리에 존재합니다.문자열 풀(String Pool):문자열 리터럴로 생성된 String 객체는 JVM의 문자열 풀에 저장됩니다. 동일한 리터럴이 재사용되지만,문자열 조작(예: +=)은 새로운 객체를 .. 메시징 시스템(Messaging System) 메시징 시스템이란?메시징 시스템은 발신자(Sender)와 수신자(Receiver) 간에 데이터를 메시지 형태로 교환하며, 어플리케이션 간 의존도를 낮추는 시스템입니다. 주로 비동기 통신을 지원하며, 실시간 데이터 스트리밍과 대규모 데이터 처리를 관리하는 데 사용됩니다. 메시징 시스템이 필요한 이유1. 동기적 통신의 한계기존 어플리케이션은 서로 직접 요청하고 직접 응답하는 구조였습니다. 이는 다음과 같은 문제가 있습니다.하나의 시스템이 장애를 겪으면 전체 시스템이 영향을 받는 강한 의존성이 발생API 호출 중 서버가 응답하지 않으면 요청한 어플리케이션이 대기 상태에 빠짐사용자 경험이 악화됨: 서버 응답 지연이 수 초만 발생해도 사용자 불만이 생김예시: 서버가 다운되거나 느린 응답을 보이면, 사용자들은 해.. [백준] 토마토 (7569번) 코드 힌트자료 구조토마토 관리 : 상, 하, 좌, 우, 위, 아래를 관리하기 위해 3차원 배열을 사용상태 변화 : 이중 큐를 사용하여 이미 익은 토마토와 방금 익은 토마토를 관리핵심 로직그래프를 초기화(입력 받기) 시킵니다.이 때 익은 토마토(값이 1일 때)를 큐에 저장을 합니다.회차 별로 BFS를 시작합니다.익은 토마토로 인해 확산되어 익은 토마토는 또 다른 큐에 저장합니다기존의 큐에 저장을 하면 count를 제대로 할 수 없습니다.BFS가 종료되었을 때 이제 막 익은 토마토 큐가 비어있는 지 확인합니다.만약 새롭게 익은 토마토가 없다면(큐가 비어있을 때) 그대로 종료합니다.새롭게 익은 토마토가 있다면 익은 토마토 큐에 저장을 하고 막 익은 토마토 큐를 비워줍니다.새롭게 익은 토마토가 없을 때 까지 반.. [Spring Boot] HTTP Body 암호화 및 간단한 예제 민감한 데이터 전송 시 보안 방법1. 전송 시 사용하는 보안 방식TLS(Transport Layer Security) 또는 SSL(Secure Sockets Layer) 프로토콜은 인터넷을 통한 데이터 전송에서 암호화를 제공합니다.민감한 데이터를 전송할 때, 클라이언트와 서버 간의 연결을 암호화하여 중간에서 데이터가 탈취되는 것을 방지합니다.TLS는 HTTP over SSL(HTTPS)로 구현되어 웹 브라우저와 서버 간의 통신을 안전하게 암호화합니다.이 방식은 데이터 전송 중 보안을 보장하며, 연결이 안전하게 유지되도록 합니다.추가 설명:HTTPS는 HTTP 프로토콜 위에 TLS/SSL을 적용하여 데이터의 기밀성을 보장합니다. 이로 인해 중간자 공격(MITM)이나 데이터 스니핑을 방지할 수 있습니다. .. [백준] 친구 (1058번) N명의 사람들이 친구 관계를 나타내는 그래프를 바탕으로, 특정 사람의 "2-친구"(직접 친구거나 친구의 친구인 관계)를 계산한 뒤, 가장 많은 2-친구를 가진 사람의 수를 출력합니다. 코드 힌트입력 처리사람 수 N과 N×N 크기의 친구 관계를 나타내는 그래프를 입력받습니다.그래프는 각 사람이 다른 사람과 친구인지 여부를 "Y"(친구)와 "N"(친구 아님)으로 나타냅니다.최대 2-친구 탐색각 사람을 시작점으로 하여, "2-친구"를 탐색합니다.이를 위해 너비 우선 탐색(BFS)를 사용합니다:시작점에서 직접 친구(깊이 1)와 친구의 친구(깊이 2)까지만 탐색합니다.이미 방문한 사람은 중복 처리하지 않습니다.결과 계산각각의 사람에 대해 계산된 2-친구 수를 확인하고, 가장 큰 값을 갱신합니다.마지막에 가장 많은.. [수학] 피타고라스 정리 피타고라스 정리란?피타고라스 정리는 직각삼각형에서 성립하는 중요한 수학적 정리로, 다음과 같이 표현됩니다:빗변의 제곱 = 다른 두 변의 제곱의 합 즉, 직각삼각형에서 빗변의 길이를 a, 다른 두 변의 길이를 각각 b와 c라고 할 때: 증명 과정1. 직각삼각형을 활용한 정사각형 구성 직각삼각형 4개를 만들어, 큰 정사각형 안에 배치합니다.큰 정사각형의 한 변의 길이는 b+c입니다.따라서 큰 정사각형의 넓이는 (b + c)^2 입니다.2. 두 가지 방식으로 넓이를 구한 후 넓이 비교하기 첫 번째 방식가장 큰 정사각형의 변의 길이를 통해 넓이 구하기(b+c)^2 두 번째 방식직각삼각형의 넓이 * 4 + 작은 정사각형 넓이 구하기 4개의 직각삼각형 넓이 : b * c / 2 * 4작은 정사각형 넓이 : a^2.. [백준] 평행사변형 (1064번) 문제 해결 흐름1. 입력3개의 점의 좌표 A(x1,y1), B(x2,y2), C(x3,y3)를 입력받습니다.2. 일직선 확인주어진 3개의 점이 일직선상에 위치하는지 확인해야 합니다.조건: 점 A, B, C가 일직선상에 존재하면 평행사변형은 물론 사각형을 만들 수 없으므로 프로그램을 종료합니다.기울기 공식 : 기울기(AB) = (y2 - y1) / (x2 - y1)프로그래밍으로 나눗셈을 계산할 때는 부동소수점으로 인하여 계산이 정확하지 않습니다. 나눗셈을 사용하는 대신 곱셈 방식으로 변경하여 계산합니다.나눗셈을 곱셈으로 변경: (x2−x1)⋅(y3−y1)=(x3−x1)⋅(y2−y1)3. 거리 계산점과 점 사이의 거리를 계산하기 위해 유클리드 거리 공식을 사용합니다유클리드 거리(Euclidean.. 이전 1 2 3 4 ··· 54 다음