_

Always be tactful

전체 글 106

[Java] BOJ 4134: 에라토스테네스의 체

소수 검증static boolean isPrimeNumber(int n) { if (n ▶ 특정 숫자가 소수인지를 판단할 때, 우리는 해당 숫자의 제곱근까지만 약수 여부를 검증하면 된다. 그런데 만약, 범위 내의 소수를 모두 알고 싶다면 어떻게 해야 할까?범위 내 소수 검증public static void main(String[] args) { Scanner sc = new Scanner(System.in); int start = sc.nextInt(); int end = sc.nextInt(); for (int i = start; i ▶ 앞서 제시한 메서드를 사용하면, 당연히 반복문을 통해 범위 내 소수를 나열할 수 있다. 하지만 입력된 범위가 커지면 커질수록 더 많은..

[Java] OCP (Open-Closed Principle) / 개방-폐쇄 원칙

좋은 객체 지향 설계 원칙에는 여러 가지가 있지만, 그중 하나가 바로 OCP다.Open for extentionClosed for modification 즉, 기존 코드는 수정하지 않으면서 새로운 기능을 위해 확장할 수 있어야 한다. *기존 코드: 시스템의 핵심 동작 코드*확장된 부분: 요구사항 추가 구현Strategy Pattern  전략 패턴이란 다양한 객체 지향 디자인 패턴 중 하나로, 알고리즘을 클래스로 캡슐화하여 동적으로 변경할 수 있게 해주는 패턴이다. 이 패턴은 알고리즘을 사용하는 코드와 알고리즘 자체를 분리하여, 새로 추가된 알고리즘이 기존 코드에 영향을 주지 않도록 한다.[전략 패턴의 기본 구조]클라이언트 코드 (Context)전략 인터페이스 (Strategy)구체적인 전략 (Concre..

[Java] 인터페이스의 다중 구현

자바에서 다중 상속이 안 되는 이유가 무엇인가?특정 클래스를 상속받는다고 할 때, 자식 클래스에서 오버라이딩 하지 않은 부모 클래스의 메서드가 있다고 치자. 그런데 하필이면 A라는 부모에게도 m이라는 메서드가 있고, B라는 부모에게도 m이라는 메서드가 있다. 이 상황에서 m이라는 메서드를 호출할 때, A 클래스와 B 클래스 중 어느 부모 클래스의 메서드를 호출해야 하는가? 명확한 답이 없을 뿐더러 심각한 문제를 발생시킬 여지가 있다. 때문에, 자바에서는 다이아몬드 문제를 막고자 클래스의 다중 상속을 금지시킨다. 관련 게시물: 다이아몬드 문제 인터페이스는 다중 구현을 허용한다. 그 이유는 무엇인가? 인터페이스는 인터페이스를 구현하는 곳에서 해당 기능을 모두 구현해야만 한다. 각기 다른 인터페이스가 같은 이..

2025 컴퓨터활용능력 4일 합격 수기

기풍쌤 유튜브를 참고하였습니다.컴퓨터활용능력 신청하기2025 개정 정보Day 1F4: 절대참조COUNT: 문자 인식 불가범위에 대한 조건 부여 시, "" 사용할 것: 같지 않음 (엑셀에서는 != 아님)&: 결합 (엑셀에서는 + 아님)인덱스의 시작은 1부터 (엑셀에서는 0 아님)NOW/TODAY: 파라미터 불필요Ctrl + ;: 날짜 반환Ctrl + Shift + ;: 시간 반환데이터베이스 함수: (표 범위, 열 제목 또는 열 번호, 조건)큰 범위의 표를 선택 시, Ctrl + Shift + 방향키 사용할 것Day 2VLOOKUP/HLOOKUP: (기준 셀, 참조 범위, 열 번호, 0 또는 1)MATCH: 행 또는 열 반환INDEX: (범위, 행, 열)RANK.EQ 함수 사용 결과 N/A 나오면 유사한 값..

자격증 2025.01.28

[Java] 객체 지향 프로그램과 다형성

자바는 객체 지향 언어다! 객체 지향 프로그램의 대표적인 특징은 아래와 같다.캡슐화상속다형성▶ 프로그래밍에서 다형성은 한 객체가 여러 타입의 객체로 취급될 수 있는 능력을 말한다. 다형성 이해를 위한 핵심 이론 두 가지은 아래와 같다.다형적 참조메서드 오버라이딩▶ 다형적 참조는 말 그대로 다양한 형태로 참조될 수 있음을 말한다. (상속 관계 주의: 부모 클래스의 객체를 자식 클래스의 참조 변수에 할당하는 것은 타입 불일치로 간주된다.)상속 예제public class Parent { public void parentMethod() { System.out.println("parent method"); }}public class Child extends Parent { public..

[Java] Getter, Setter 메서드 / 접근 제어자

접근 제어자getter/setter private 필드에 직접 접근할 수 없을 때, 보통 getter 메서드와 setter 메서드를 제공한다. 이렇게 하면 객체를 안전하게 조회하거나 변경할 수 있다.public class TestForInt { private int number; // getter public int getNumber() { return number; } // setter public void setNumber(int number) { if (number != 0) { this.number = number; } }}*get + 변수명 (낙타 표기법)*set + 변수명 (낙타 표기법)public ..

[Java] super 키워드 / 상속과 메모리 구조

자바는 단일 상속만 가능하며, 상속받고자 하는 클래스에 extends 키워드를 사용하면 된다. 아래 예제에서는 Animal 클래스를 Dog와 Cat이 상속받아 기존의 코드를 재사용한다.// 부모 클래스public class Animal { public void eat() { System.out.println("Eat!"); }}// 자식 클래스public class Dog extends Animal { public void bark() { System.out.println("bark!"); }}// 자식 클래스public class Cat extends Animal { public void meow() { System.out.println(..

[Java] static final / 매직 넘버와 상수

매직 넘버 프로그래밍에서 매직 넘버란 코드에서 의미를 명확히 알 수 없는 숫자 값을 말한다. 특정 숫자가 변수 없이 바로 사용되어 이 숫자가 어떤 의미를 가지는지 알기 어려운 경우 매직 넘버라고 부르는 것이다. 매직 넘버는 가독성을 저하시킬 뿐 아니라, 유지보수 측면에서도 매우 비효율적이므로 지양하는 것이 좋다. 그래서 이번에는 매직 넘버 문제를 해결하는 상수에 대해 포스팅하도록 하겠다.상수 관례public class Constant { // 수학 상수 public static final double PI = 3.14159265358979323846; public static final double EPS = 1e-6; // 시간 상수 public static final int..

[Java] 자바의 메모리 구조

멤버 변수 용어 정리public class Data { public String name; // 인스턴스 변수 public static int count; // 클래스 변수, 정적 변수, static 변수 public Data(String name) { this.name = name; count++; }}  위 코드에서 name과 count 모두 멤버 변수이다. 그러나 static 유무에 따라 인스턴스 변수, 클래스 변수로 구분된다. 인스턴스 변수의 경우 인스턴스를 만들 때마다 새로 만들어지지만, 클래스 변수의 경우 일반적으로 자바 프로그램을 시작할 때 딱 1개가 만들어진다. 클래스 변수는 인스턴스 변수와는 달리 여러 곳에서 공유하는 목적으로 주로 사용된다...

비전공자 노베이스 SQLD 3일 합격 수기

자격증은 따기만 하면 된다는 사람만 보시길 추천합니다.사전 준비SQL 자격검정 실전문제> 구매 (필수) * SQLD는 3과목이 포함되지 않기 때문에 실제 분량은 130p 이내 홍쌤의 데이터랩> 전자책 구매 (선택) * 오직 기출문제 5회 분량 때문이므로 선택 사항Day 1▶ 유튜브 SQLD 재생목록 시청 * 전자책을 구매하지 않아도 충분히 이론 공부 가능하나, 기출문제 때문에라도 구매하는 걸 추천 ▶ 노랭이 4p - 27p 참고하면서 문제 풀이 & 오답 점검 * 1과목은 매우 쉬운 파트이므로 가능한 다 맞히고 넘어갈 것 [당시 결과]1과목 1장: 25/33 (개)1과목 2장: 11/17 (개) Day 2▶ 노랭이 32p - 130p 마무리 & 오답 점검 * 단시간 이해하기 어려운 부분 포기할 것 (필..

자격증 2025.01.17

[IntelliJ] 인텔리제이 단축키 모음

본 게시물은 수시로 업데이트 됩니다.[마지막 수정: 25-04-13] Ctrl + 클릭Go to Definition 기능psvmpublic static void main(String[] args) {} soutSystem.out.println(); soutvSystem.out.println(변수 이름); soutmSystem.out.println(메서드 이름); iter향상된 for 문 생성 setsetter 생성 getgetter 생성Ctrl + P메서드 호출 시 파라미터 표시 Ctrl + O메서드 오버라이딩 Ctrl + R텍스트 대치 Ctrl + W선택 영역 확장 Ctrl + Alt + V변수 선언 자동 생성 Ctrl + Alt + N코드 정리 Ctrl + Alt + M메서드 추출 Ctrl + Alt..