전체 글 140

[ODOQ] 동일성과 동등성

[One Day One Question]동일성과 동등성에 대해 설명해 주세요.1. 동일성 (Identity)정의: 동일성은 두 객체가 같은 메모리 주소를 참조하고 있는지를 확인합니다.비교 방법: == 연산자를 사용합니다.사용 예:동일성은 객체가 같은 인스턴스인지 확인하는 데 사용됩니다.public class IdentityExample { public static void main(String[] args) { String str1 = new String("Hello"); // 새로운 String 객체 생성 String str2 = new String("Hello"); // 또 다른 String 객체 생성 String str3 = str1; // str3은 st..

cs/ODOQ 2024.12.06

[Spring boot] compile과 implementation

build.gradle에서 compile과 implementation은 모두 의존성을 선언하는 데 사용되지만, 둘 사이에는 중요한 차이가 있습니다. Gradle 7.0부터는 compile이 deprecated(사용 중지)되었고, 대신 implementation과 api로 대체되었습니다. 1. compile vs implementation의 차이compile예전 방식: compile은 이전 Gradle 버전에서 의존성을 선언할 때 사용되던 기본 방식입니다. 이 방식으로 선언된 의존성은 컴파일 시간과 런타임 시간 모두에서 프로젝트에 포함됩니다.특징:해당 의존성은 compile에 의해 컴파일 시점과 실행 시점 모두에서 사용할 수 있습니다.compile 의존성은 해당 프로젝트를 사용하는 다른 프로젝트에 전이적(..

cs 2024.12.04

[Spring boot / 오류] build.gradle 오류 (gradle버전과 의존성 옵션)

gmail API를 사용하기 위해 공식 홈페이지에서 제공하는 레퍼런스를 보면서 dependencies에 추가하다가 오류가 발생했다. https://developers.google.com/gmail/api/downloads?hl=ko#gradle Gmail API 클라이언트 라이브러리  |  Google for Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 의견 보내기 Gmail API 클라이언트 라이브러리 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Gmail API는developers.google.comdependencies { //gmail API compile 'com.google.apis:google-api..

삽질 2024.12.04

[프로그래머스] 보석 쇼핑 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/67258 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요어피치가 보석 매장에서 모든 종류의 보석을 적어도 하나씩 포함하는 가장 짧은 구간을 찾으려 한다. 진열대 번호 순서대로 주어진 보석 배열에서 이러한 구간의 시작과 끝 번호를 반환하는 문제이다.접근 방법보석 종류 개수 파악:주어진 gems 배열에서 HashSet을 사용해 보석의 고유한 종류 개수를 구한다. 이를 기준으로 구간 내에서 모든 보석 종류를 포함했는지 판단한다.투 포인터 알고리즘 활용:start와 end 포인터를 사용해 현..

[ODOQ] 로그와 메트릭

[One Day One Question]로그와 메트릭에 대해 설명해 주세요.로그(Log)와 메트릭(Metric)은 소프트웨어 시스템의 상태를 모니터링하고 성능을 분석하는 데 사용되는 중요한 데이터 유형입니다. 이 두 가지는 서로 보완적인 역할을 하며, 시스템 문제를 식별하고 해결하는 데 유용합니다. 로그 (Log)1. 정의로그는 시스템, 애플리케이션, 또는 서비스에서 발생한 이벤트의 기록입니다.주로 텍스트 형식으로 저장되며, 시간순으로 정렬됩니다.2. 특징구조적/비구조적 데이터: 로그는 메시지, 코드 스택, 이벤트 세부정보 등 다양한 형식으로 작성됩니다.컨텍스트 제공: 특정 이벤트가 왜 발생했는지와 그에 대한 자세한 설명을 제공합니다.시간 기반: 각 로그는 일반적으로 타임스탬프가 포함되어, 이벤트 발생 ..

cs/ODOQ 2024.12.03

[프로그래머스] 불량 사용자 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/64064  문제 개요이벤트 응모자 중 특정 패턴과 일치하는 아이디를 불량 사용자로 제재하려고 한다. 응모자 아이디와 불량 사용자 패턴이 주어질 때, 불량 사용자 패턴에 따라 제재될 수 있는 응모자 아이디 목록의 가능한 경우의 수를 구하는 문제이다. 제재 아이디 목록의 순서는 상관없으며, 동일한 내용을 가진 경우는 하나로 간주한다. 접근 방법불량 사용자 패턴 변환:주어진 불량 사용자 패턴(banned_id)의 * 문자를 정규 표현식의 와일드카드인 .으로 변환하여 매칭 가능한 형태로 변경한다.더보기이유 및 필요성1. *는 정규 표현식의 문자가 아님문제에서 주어진 banned_id에는 *가 포함되어 있..

[ODOQ] 얕은 복사 깊은 복사

[One Day One Question]얕은 복사와 깊은 복사 대해 설명해 주세요.1. 얕은 복사 (Shallow Copy)정의: 객체의 최상위 계층만 복사하며, 객체 내부에 포함된 참조형 데이터(다른 객체나 배열 등)는 복사되지 않고 원본 객체와 동일한 참조를 공유합니다.특징:변수 값: 기본형 데이터(숫자, 문자열 등)는 복사본과 원본이 독립적입니다.참조형 데이터: 내부 참조 데이터(리스트, 딕셔너리 등)는 원본 객체와 동일한 메모리 주소를 가리킵니다. 따라서 원본 또는 복사본 중 하나에서 내부 데이터를 변경하면 다른 쪽에도 영향을 줍니다.import java.util.ArrayList;class ShallowCopyExample implements Cloneable { int number; ..

cs/ODOQ 2024.12.02

[프로그래머스] 단속카메라 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/42884 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요고속도로를 이동하는 차량들의 경로가 주어질 때, 모든 차량이 단속 카메라를 한 번 이상 만나도록 카메라를 설치하려 한다. 차량의 진입 지점과 진출 지점을 기준으로 최소한의 카메라를 설치하는 문제이다.접근 방법차량의 진출 지점을 기준으로 오름차순 정렬:모든 차량이 카메라를 만나기 위해 가장 빨리 고속도로를 떠나는 차량의 진출 지점에 카메라를 설치한다는 전략을 세운다. 이를 위해 Arrays.sort를 사용하여 routes 배열을 진..

[프로그래머스] 최고의 집합 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/12938# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요주어진 자연수의 개수 n과 합 s를 만족하는 집합 중, 각 원소의 곱이 최대가 되는 집합을 구하는 문제입니다. 만약 해당 조건을 만족하는 집합이 없다면 [−1]을 반환합니다. 접근 방법조건 확인n>s인 경우, 합 s를 만들 수 없으므로 [−1]을 반환합니다.최적의 분배 계산합 s를 n개의 원소로 최대한 고르게 나누는 것이 곱을 최대화하는 방법입니다.각 원소에  s/n을 할당합니다.s%n의 나머지 값은 각 원소에 하나씩 분배하여 ..

[프로그래머스] 정수 삼각형 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요주어진 삼각형 구조에서 꼭대기에서 시작하여 대각선 아래 방향으로 이동하며 숫자의 합을 최대화하는 경로를 찾는 문제입니다. 각 위치에서는 바로 아래칸의 두 개의 숫자 중 하나로만 이동할 수 있습니다. 접근 방법역방향 동적 프로그래밍(DP)삼각형의 아래쪽에서부터 위쪽으로 값을 갱신하며 최대값을 계산합니다.각 칸에서 가질 수 있는 최대값을 그 칸의 값과 아래층 두 칸의 최대값 중 더 큰 값을 더하여 구합니다.구체적인 동작삼각형의 가장 ..