오블완 18

[ODOQ] 일급 컬렉션

[One Day One Question]일급 컬렉션에 대해서 설명해 주세요일급 컬렉션(First-class Collection)은 객체 지향 설계에서 컬렉션(리스트, 맵, 세트 등)을 다룰 때 사용하는 설계 패턴입니다. 단순히 컬렉션을 감싸는 클래스를 만드는 것처럼 보이지만, 이 패턴을 활용하면 설계의 명확성과 유지보수성을 크게 향상시킬 수 있습니다. 일급 컬렉션의 특징단일 컬렉션만 포함컬렉션 외에 다른 멤버 변수를 가지지 않습니다.해당 클래스를 통해 컬렉션에 대한 작업을 수행합니다.public class Members { private final List members; // 단일 컬렉션 public Members(List members) { this.members = new A..

cs/ODOQ 2024.11.27

[프로그래머스] [PCCP 기출문제] 1번 / 동영상 재생기도움말 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/340213 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요동영상 재생기를 구현하는 문제로, 사용자가 입력한 명령에 따라 동영상의 재생 위치를 조정하는 기능을 제공합니다. 동영상의 길이, 현재 재생 위치, 오프닝 구간의 시작과 끝 시각이 주어지며, 사용자는 "prev"와 "next" 명령을 통해 재생 위치를 조정할 수 있습니다. 오프닝 구간에 있을 경우, 자동으로 오프닝이 끝나는 위치로 이동해야 합니다. 최종적으로 모든 명령이 수행된 후의 재생 위치를 "mm:ss" 형식으로 반환해야 합..

[ODOQ] TCP와 UDP의 차이점

[One Day One Question]TCP와 UDP의 차이점을 설명해주세요 TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는 인터넷에서 데이터를 전송하기 위해 사용하는 프로토콜입니다. 두 프로토콜은 데이터 전송 방식과 특징에서 주요 차이점이 있습니다.1. 연결 기반 vs 비연결 기반TCP: 연결 기반 프로토콜로, 데이터를 전송하기 전에 송신자와 수신자 간에 연결을 설정합니다. 이를 3-way handshake라고 합니다.UDP: 비연결 기반 프로토콜로, 연결 설정 없이 데이터를 전송합니다. 송신자는 데이터를 바로 전송하며 수신 여부를 확인하지 않습니다. 2. 신뢰성TCP: 신뢰성이 보장됩니다. 데이터의 손실, 중복, 순서가 어긋나는 경..

cs/ODOQ 2024.11.25

[ODOQ] HTTP와 HTTPS의 차이점

[One Day One Question]HTTPS는 HTTP와 어떤 차이점이 있으며, HTTPS가 보안을 강화하는 원리는 무엇인가요?HTTP와 HTTPS의 차이점HTTP와 HTTPS는 인터넷에서 데이터를 주고받는 데 사용되는 프로토콜이지만, 보안 측면에서 큰 차이가 있습니다.1. HTTP (HyperText Transfer Protocol)데이터를 암호화하지 않고 평문(Plain Text)으로 전송합니다.네트워크 상에서 제3자가 데이터를 쉽게 읽거나 조작할 수 있습니다.기본적으로 포트 80번을 사용합니다.2. HTTPS (HyperText Transfer Protocol Secure)HTTP에 SSL/TLS(암호화 프로토콜)를 결합하여 데이터를 암호화하여 전송합니다.제3자가 데이터를 읽거나 변조하기 매우..

cs/ODOQ 2024.11.24

[프로그래머스] 멀쩡한 사각형 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/62048#  문제 개요주어진 문제는 가로 길이 W와 세로 길이 H인 직사각형 종이가 대각선으로 잘려, 두 개의 직각삼각형으로 나뉜 상태에서 시작합니다. 이 종이에서 1cm × 1cm 크기의 정사각형으로 잘라낼 수 있는 최대 개수를 구하는 것입니다. 대각선에 의해 사용 불가능한 정사각형들을 제외한 나머지 정사각형의 수를 계산하는 문제입니다. 접근 방법대각선이 지나가는 칸의 수는 직사각형의 가로(W)와 세로(H)를 고려하여 계산됩니다.대각선이 지나가는 격자 칸의 총 개수는, 다음과 같은 성질을 기반으로 계산됩니다 W+H−gcd(W,H) 왜 이렇게 계산할까?1. 대각선의 경로직사각형의 한 모서리에서 반..

[ODOQ] JPA의 ddl-auto 옵션

[One Day One Question]JPA의 ddl-auto 옵션은 각각 어떤 동작을 하고 어떤 상황에서 사용해야 할까요? JPA의 ddl-auto 옵션은 Hibernate에서 데이터베이스 스키마를 어떻게 관리할지를 설정하는 옵션입니다. 이 옵션은 application.yml 또는 application.properties 파일에서 설정하며, 다양한 환경에서 유용하게 사용할 수 있습니다.주요 옵션과 동작none동작: JPA가 데이터베이스 스키마 생성이나 수정 작업을 수행하지 않음.사용 상황: 이미 정의된 스키마를 사용하고, 애플리케이션이 데이터베이스 스키마를 변경하지 않아야 하는 프로덕션 환경.validate동작: 엔티티와 데이터베이스 스키마가 일치하는지 검증.사용 상황: 스키마는 외부에서 생성하고, ..

cs/ODOQ 2024.11.22

[ODOQ] Spring Data JPA에서 새로운 Entity인지 판단하는 방법

[One Day One Question]Spring Data JPA에서 새로운 Entity인지 판단하는 방법은? 1. @Id 필드를 기준으로 판단JPA는 엔티티의 @Id 필드가 null이거나 기본값일 경우, 해당 엔티티를 새로운 엔티티로 간주합니다.엔티티가 영속성 컨텍스트에 존재하지 않고 @Id 필드가 null인 경우, 새로운 엔티티로 판단합니다.public boolean isNew(Entity entity) { return entity.getId() == null; // ID가 null이면 새로운 엔티티로 간주} 2. Persistable 인터페이스 구현@Id 필드가 null이 아닌 경우에도 새로운 엔티티로 취급해야 할 상황(예: ID가 수동으로 생성되는 경우)이 있을 수 있습니다.이런 경우, 엔..

cs/ODOQ 2024.11.21

[프로그래머스] 혼자 놀기의 달인 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/131130 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요범희는 1부터 100까지의 숫자가 적힌 카드로 혼자 게임을 즐깁니다. 게임은 숫자 카드가 담긴 상자들을 무작위로 배치하고, 특정 상자를 선택하여 안의 숫자를 확인한 뒤, 그 숫자에 해당하는 상자를 열어가며 진행됩니다. 이미 열린 상자를 만나면 하나의 그룹이 형성되며, 같은 방식으로 다른 그룹을 만들어갑니다. 상자들은 모두 두 개의 그룹으로 나뉘며, 각 그룹의 크기를 곱한 값이 게임의 점수가 됩니다. 주어진 카드 번호 배열 car..

[프로그래머스] 혼자서 하는 틱택토 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/160585 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요틱택토 게임을 혼자서 진행하던 머쓱이가 규칙을 어겼는지 판단하기 위해, 현재 게임판이 규칙에 맞는 상태인지 확인하는 문제입니다. 게임판을 나타내는 문자열 배열 board가 주어질 때, 규칙에 맞는 상태라면 1을, 그렇지 않으면 0을 반환하는 solution 함수를 작성하는 문제입니다.규칙 위반 조건:"O"와 "X"의 순서가 맞지 않은 경우 ("O" 차례에 "X"가 표시되거나 그 반대).승리 조건이 충족되어 게임이 종료되어야 하는..

[프로그래머스] 시소 짝꿍 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/152996 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 설명어느 공원 놀이터에는 시소가 하나 설치되어 있습니다. 이 시소는 중심으로부터 각각 2(m), 3(m), 4(m) 거리의 지점에 좌석이 하나씩 설치되어 있습니다. 두 명의 사람이 마주 보고 시소에 앉았을 때, 시소가 평형 상태를 유지하려면 양쪽에 작용하는 토크의 크기가 같아야 합니다. 즉, 각 사람의 무게와 시소 축과의 거리의 곱이 동일하다면, 두 사람은 "시소 짝꿍"이라고 할 수 있습니다.주어진 문제는 사람들의 몸무게 목록 we..