2025/03 30

[1분 면접] SOLID 원칙이란 ?

📌 면접 답변 SOLID 원칙은 객체지향 설계의 핵심인 의존성 관리를 위한 원칙이다.객체지향 프로그래밍을 하면서 지켜야 할 5대 원칙으로, 변경에 용이하고, 유지보수와 확장에 도움이 된다.   SRP (SIngle Responsibility Priciple, 단일 책임 원칙)하나의 클래스가 여러 가지 기능을 담당하면 안 되고, 하나의 역할(책임)만 수행해야 한다.SRP를 잘 지키면 변경이 필요할 때 수정할 대상이 명확해진다. SRP 위반 예시class Report { public String generate() { return "Report Content"; } public void print() { System.out.println("Printing Repor..

[1분 면접] DB Replication이란 ?

📌 면접 답변 DB ReplicationDB의 고가용성과 데이터 안정성을 보장하기 위해 활용되는 기술데이터의 지속적인 가용성과 신뢰성을 위해 원본(Source)서버와 복제(Replica)서버 간의 데이터 동기화 Source와 Replica 서버의 데이터 일관성 유지 과정은 주로 Binary log를 기반으로 이뤄진다.   Binary log 서버에서 실행된 모든 데이터 변경 쿼리 기록하는 역할MySQL에서 변경된 데이터를 기록하는 로그 파일 Binary log 저장 방식으로는 Row, Statemet, Mixed의 방식이 있다. Row각 행별로 변경된 내용 정확히 기록 (데이터 일관성 높게 유지)모든 행의 변경 사항을 저장하여 Binary log 파일의 크기 급격히 증가  Statement데이터 변경을..

Java 기초 정리

인프런의 김영한님의 Java 기초를 보고 정리를 하였다. 추후에 복습에 편리함을 목적으로 이 포스팅으로 기록을 남긴다. 이 부분에 특히 메서드 부분하고 오버로딩을 잘 보자 ! 변수 종류// 정수: byte, short, int, longint a = 10;// 실수: float, doubledouble b = 20.4;// 불리언: booleanboolean c = true;// 문자 charchar d = 'h';// 문자열 StringString e = "jerry";위에 쓰여있는 변수들은 자주 쓰이는 변수들이다. 실무에 거의 쓰지 않는 변수 타입byte, shortfloatchar  변수 선언 규칙 변수는 Camel case 사용  →  ex) orderDetail클래스는 첫글자를 대문자로 사용  ..

🔖Java 2025.03.09

[Java][백준] 백준 환경 파일 입력 꿀팁(tip)

항상 알고리즘 문제는 파이썬으로 풀어왔는데,최근에 Java와 Java 프레임워크를 배우고 있다.익숙해지기위해 가끔 Java로 쉬운 알고리즘 쉬운 문제를 풀어보려고한다.   새로운 언어의 코테 문제를 풀려고 할때 (특히 백준) ,내가 먼저 하는 것은 텍스트 파일을 통해 입력을 자동으로 받는 것이다. 이거를 사용하고 안하고의 코드 노가다의 퀄리티가 확 달라진다 !   🤖 텍스트 파일을 통해 입력 자동화백준 문제를 풀다 보면, 해당 예제를 복사해서 붙여 넣는 경우가 많다. 근데 이게 생각보다 진짜 진짜 귀찮다... 이런 귀찮음을 텍스트 파일로 간단하게 해결 가능 하다 !! System.setIn(new FileInputStream("input.txt"));현재 Java 파일 경로에 "input.txt" 파일..

[Python][프로그래머스] 수식 최대화 / 완전탐색, 구현(Lv2)

🖇️ 링크  프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr🗒️ 파이썬 코드 풀이from itertools import permutationsdef solution(expression): answer = 0 # 피연산자(operand) - 연산자(operator) 분리 operator = [] lst_expression = list(expression) for idx,op in enumerate(lst_expression): if op in '+-*': operator.append(op) lst_expression[id..

[1분 면접] record를 DTO로 사용하는 이유

📌 면접 답변record 불변성 (Immutable)을 기본으로 한다.기본 클래스와 달리 모든 필드가 final 키워드로 선언필드 선언으로 자동으로 생성자, getter, equals(), hashCode(), toString() 등의 메서드 자동으로 생성객체 생성 후 변경 불가능단순히 데이터 캡슐화 목적으로 사용 기존 코드// 기존 클래스 기반 DTOpublic class MemberDto { private final String name; private final String email; private final int age; public MemberDto(String name, String email, int age) { this.name = name; this.email = email; ..

[MySQL][Leet Code]180. Consecutive Numbers (Medium)

https://leetcode.com/problems/consecutive-numbers/description/?envType=study-plan-v2&envId=top-sql-50🏫  추가 학습 (Window Function) 참고로 OVER()는 윈도우 함수가 적용될 데이터 범위를 정하는 역할이다. 순위 함수 (Ranking Functions)SELECT id, num, ROW_NUMBER() OVER(ORDER BY num) AS row_num, RANK() OVER(ORDER BY num) AS rank_num, DENSE_RANK() OVER(ORDER BY num) AS dense_rank_numFROM Logs;ROW_NUMBER()정렬 순서대로 고유한 순위..

[MySQL][Leet Code] 1789. Primary Department for Each Employee (Easy)

https://leetcode.com/problems/primary-department-for-each-employee/?envType=study-plan-v2&envId=top-sql-50🗒️SQL 코드 풀이 SELECT employee_id , department_id FROM EmployeeWHERE employee_id IN ( SELECT employee_id FROM Employee GROUP BY employee_id HAVING COUNT(*) = 1 )OR primary_flag = "Y" 1. 조건이 2개가 있다. primary_flag 1개 밖에 없는 경우primary_flag가  Y인 경우 2.  이 두가지를 WHERE로..