전체 글(234)
-
자바의 논리 연산자
기본 이해개념 정의논리 연산자는 boolean 타입의 값을 연산하는 연산자로, 조건문과 제어문에서 복합적인 조건을 처리하는 데 사용된다.일상생활 비유AND(&&) : 도서관 출입 시 "학생증이 있고" + "마스크를 착용해야" 입장 가능OR(||) : 결제 시 "현금 또는 카드" 중 하나만 있으면 가능NOT(!) : "비가 오지 않음" = "맑음"존재 이유와 목적필요성복잡한 조건의 표현다중 조건 검사코드의 가독성 향상실제 개발에서의 역할사용자 입력 유효성 검사보안 권한 확인비즈니스 로직 구현핵심 구성요소주요 연산자AND (&&)모든 조건이 true일 때만 true 반환Short-circuit 평가 지원OR (||)하나라도 true면 true 반환Short-circuit 평가 지원XOR (^)두 조건이 다를..
2025.05.21 -
부동 소수점에 대해서(무한 소수, 소수점 오차)
소수(Decimal Number)란 무엇인가?10진법에서의 소수는 정수가 아닌 분수를 0과 .(소수점) 그리고 1~9까지의 자연수를 활용해서 표현하는 방법이다. 0.1은 1/10을 표현한 것이고 0.5는 5/10를 표현한 것이다. 소수는 기본적으로 분수의 다른 표현법이며, 소수점 왼쪽은 정수부, 오른쪽은 소수부라고 한다. 소수부의 각 자리는 10의 거듭제곱분의 1을 의미한다.그런데 여기서 문제점이 발생한다.컴퓨터에서 소수점 연산 시 오차 문제수학적으로 예상되는 값과 실제로 나오는 값이 다르다. 이유는 프로그래밍 언어가 0과 1로 이루어진 2진법을 사용하기 때문이다.// 부동 소수점 나머지 연산let remainder3 = 3.14 % 2; // 1.14console.log("부동 소수점 나머지:", re..
2025.05.21 -
자바의 비교 연산자
기본 이해개념 정의비교 연산자는 두 피연산자의 크기나 동등성을 비교하여 true/false의 논리값을 반환하는 연산자다.일상생활 비유체육대회에서 달리기 순위 비교시험 점수 합격선 판단쇼핑몰에서 상품 가격 비교존재 이유와 목적필요성프로그램의 흐름 제어데이터 검증조건부 실행 결정실제 역할조건문의 기준 제공데이터 필터링정렬 알고리즘 구현유효성 검사해결하는 문제들데이터 범위 검증입력값 유효성 확인비즈니스 로직 구현핵심 구성요소주요 연산자== : 동등 비교!= : 비동등 비교 : 큼= : 크거나 같음작동 방식int a = 5;int b = 3;boolean result1 = a > b;boolean result2 = a 연산자 우선순위단항 연산자산술 연산자비교 연산자논리 연산자주의사항과 일반적 오류일반적 실수객..
2025.05.21 -
CSS 우선순위와 미디어쿼리 적용 원칙
CSS 우선순위(Specificity) 기본 원칙CSS는 캐스케이딩(Cascading) 원칙을 따른다.cascade는 "a process whereby something, typically information or knowledge, is successively passed on""무언가(일반적으로 정보나 지식)가 연속적으로 전달되는 과정이"라는 의미를 가지고 있다.그런 단어의 의미처럼 캐스케이딩은 "상속과 우선순위를 포함하는 CSS의 스타일 적용 체계"라고 할 수 있다. 실제 CSS의 우선순위는 다음과 같다.!important인라인 스타일ID 선택자 (#)클래스(.)/속성([])/가상(:) 선택자요소(태그) 선택자전체 선택자(*)미디어쿼리 적용 규칙그런데 우리가 CSS를 적용하다보면 반응형 디자인을 ..
2025.05.20 -
자바 산술 연산자와 오버 플로우/ 언더 플로우
기본 이해산술 연산자는 수학적 계산을 수행하는 프로그래밍 언어의 기본 연산자다.계산기의 기본 버튼들(+, -, ×, ÷)과 동일한 역할을 수행한다.작동 방식int a = 10;int b = 3;int sum = a + b; // 덧셈int diff = a - b; // 뺄셈int mult = a * b; // 곱셈int div = a / b; // 나눗셈int mod = a % b; // 나머지자바의 타입 승격(Type Promotion) 규칙을 따른다.///데이터 타입 크기byte: 1바이트 (-128 ~ 127)char: 2바이트 (0 ~ 65535)short: 2바이트 (-32768 ~ 32767)int: 4바이트 (-2^31 ~ 2^31-1)long: 8바이트 (-2^63 ~ 2^63-1)fl..
2025.05.19 -
자바의 부호/증감 연산자
기본 이해개념 정의부호/증감 연산자는 변수의 값을 증가시키거나 감소시키는 단항 연산자다.종류증가 연산자(++): 값을 1 증가감소 연산자(--): 값을 1 감소부호 연산자(+, -): 양수/음수 표현작동 방식int x = 5;x++; // x = x + 1과 동일x--; // x = x - 1과 동일증가 연산자++와 동일한 연산을 하는 방법이 2가지 더 있는데 작동 방식이 조금 다르다.byte b = 127;b = b + 1; // 컴파일 에러b += 1; // 정상 작동 (-128이 됨)b++; // 정상 작동 (-128이 됨) 때문에 특수 상황에서 연산 후 결과 값도 달라진다.b+1의 경우 b가 연산 시 자동으로 int로 승격(promotion)되고 1도 int 타입이..
2025.05.19 -
자바 변수 체크 문제
문제자동 타입 변환에서 컴파일 에러가 발생하는 것을 선택하시오.byte byteNum = 10;short shortNum = 20;char charNum = 'A';int intNum = 30;long longNum = 40L;float floatNum = 3.14f;double doubleNum = 5.5;1. int result1 = byteNum;2. char result2 = shortNum;3. float result3 = longNum;4. short result4 = charNum;5. double result5 = floatNum;정답 : 2번, 4번에서 컴파일 에러 발생컴파일러의 자동 형변환 판단 기준크기가 큰 타입으로의 변환은 자동 변환 허용크기가 같더라도 표현 범위가 다르면 자동 변환..
2025.05.19 -
자바 싱글톤 패턴 (Singleton Pattern)
개요싱글톤 패턴은 객체 지향 프로그래밍에서 인스턴스 생성을 제어하는 디자인 패턴이다.여기서 핵심은 생성자를 private으로 선언하여 외부에서 new 키워드로 인스턴스를 생성하지 못하게 막고, 대신 static 메서드를 통해 단 하나의 인스턴스만 반환하도록 하는 것이다. 이렇게 하면 프로그램 전체에서 해당 클래스의 인스턴스는 오직 하나만 존재하게 되며, 이 인스턴스는 모든 곳에서 공유하여 사용할 수 있다.예를 들어, 데이터베이스 연결이나 설정 정보와 같이 프로그램 전체에서 하나의 상태만 유지해야 하는 경우에 싱글톤 패턴을 사용한다.목적싱글톤의 주요 목적은 크게 두 가지다.전역 상태 관리데이터베이스 연결설정 정보캐시로깅 시스템public class DatabaseConnection { private ..
2025.05.18 -
Java의 this 키워드
기본 이해개념 정의this는 현재 실행 중인 메서드가 속한 객체 자신을 가리키는 참조 변수인스턴스의 멤버 변수와 메서드를 참조하는데 사용일상생활 비유사람이 자신을 지칭할 때 "나"라고 하는 것처럼, 객체가 자신을 지칭할 때 "this"를 사용작동 방식public class Person { private String name; public Person(String name) { this.name = name; // this로 멤버변수 참조 }}존재 이유와 목적필요성멤버변수와 매개변수의 이름이 같을 때 구분public class Person { private String name; // 멤버변수 private int age; // 멤버변수 // ..
2025.05.18 -
break와 continue 상세 설명
기본 이해break와 continue는 제어문에만 사용되는 개념이다.제어문이라는 것은 for 루프, while 루프, do-while 루프, switch 문 같은 것을 의미한다.정의break: 현재 실행 중인 반복문이나 switch문을 즉시 종료continue: 현재 반복을 건너뛰고 다음 반복으로 진행비유break: 영화관에서 영화가 마음에 들지 않아 중간에 퇴장continue: TV 채널에서 광고가 나오면 다음 내용으로 건너뛰기작동방식break: 제어문의 블록을 완전히 벗어남continue: 현재 반복만 중단하고 다음 반복 조건 검사로 이동존재 이유와 목적제어문을 사용하는 중에 특정 조건의 동작을 컨트롤 하고 싶을 경우 사용한다. 사실 if문만으로도 모든 제어가 가능하지만 break와 continue를..
2025.05.18