핌이의 일상

프로그래밍 12

좋은 모듈, 나쁜 모듈 (결합도와 응집도 / 시간적, 우연적 응집도의 차이)

나쁜 모듈 : 결합도가 강함. 내부에 직접 영향 1. 내용 결합도 class PaymentProcessor: def process_payment(self, amount): #여기서는 결제 처리에 관련된 코드가 포함되어 있음 pass class Order: def __init__(self, payment_processor def checkout(slef, amount): #결제 프로세서의 메서드로 직접 호출하여 결합도가 높음 self.payment_processor.process_payment(amount) ==> 만약 Payment Processor의 구현이 변경되면 Order 클래스도 변경해야 할 가능성이 높다. ==> 해결 : 의존성 주입(Dependency Injection)과 같은 설계패턴을 사용..

Programming/Python 2024.04.08

오라클 | INSERT INTO, SELECT * FROM

오라클 | CREATE TABLE (tistory.com) 오라클 | CREATE TABLE CREATE TABLE 학생 ( 학번 NUMBER(7), 이름 VARCHAR2(20) NOT NULL, 학년 NUMBER(1), 신청과목 VARCHAR2(20) NOT NULL, 연락처 VARCHAR2(20), CONSTRAINT pk_student PRIMARY KEY (학번) ) 주어진 SQL 문은 Oracle 데이터베이스에서 "학생" pimgrim.tistory.com (위의 링크와 이어지는 내용) INSERT INTO 학생 VALUES (9816021, '한국산', 3, '경영학개론', '050-1234-1234'); 주어진 SQL 문은 "학생" 테이블에 새로운 학생 정보를 삽입하는데 사용됩니다. 여기서 ..

오라클 | CREATE TABLE

CREATE TABLE 학생 ( 학번 NUMBER(7), 이름 VARCHAR2(20) NOT NULL, 학년 NUMBER(1), 신청과목 VARCHAR2(20) NOT NULL, 연락처 VARCHAR2(20), CONSTRAINT pk_student PRIMARY KEY (학번) ) 주어진 SQL 문은 Oracle 데이터베이스에서 "학생" 테이블을 생성하는데 사용됩니다. 각 열은 학생의 정보를 나타내며, "학번" 열이 기본키(primary key)로 설정되어 있습니다. 여기서 사용된 제약 조건과 데이터 유형은 다음과 같습니다: 학번 (학번): 숫자형 데이터 유형(NUMBER)을 사용하며, 최대 7자리의 숫자를 저장할 수 있습니다. "학번" 열은 기본키(primary key)로 설정되어 있으며, 각 학생을..

연산자 ‘/’와 ‘%’ 정리

연산자 '/'와 '%'에 대한 설명 5를 예로 들어보겠습니다. 0 1 2 3 4 5 6 7 8 9 /5 = 0 0 0 0 0 1 1 1 1 1 %5 = 0 1 2 3 4 0 1 2 3 4 위의 표를 보면 알 수 있듯이, 5보다 작은 정수는 5로 나눌 수 없기 때문에 몫은 0, 나눠지지 못한 값은 그대로 %의 값이 된다. 또한, 연산자에게 % 란 상쇄 후 남은 값을 뜻한다. 5과 동일한 5를 나누면 몫은 1, 남은 값은 0이 된다. 5보다 큰 정수를 나누면 해당 정수가 나오는 5의 배수가 나오며, 연산 과정 후 남은 값이 %의 결과가 된다. a b일때, ..

[C] 배열과 포인터

아래 예시는 2 * 2 배열을 생성한 뒤, 포인터를 이용하여 합산하는 코드 입니다. #include int main() { int a[2][2] = {{11, 22}, {44, 55}}; // 2x2 배열 선언 및 초기화 int i, sum = 0; int *p; p = a[0]; // 포인터 p를 배열 a의 첫 번째 요소의 주소로 설정 for (i = 1; i < 4; i++) sum += *(p + i); // 포인터 p를 통해 배열 요소에 접근하여 값을 누적 printf("%d", sum); // 누적된 값 출력 return 0; } 결과: 22 + 44 + 55 = 121 1. int a[2][2] = {{11, 22}, {44, 55}};: 2x2 크기의 배열 a를 선언하고 초기화합니다. 2. ..

Programming/C 2023.12.23

[Java] 클래스 상속과 생성자

이 프로그램에서는 두 클래스 Super와 Sub이 상속 관계에 있습니다. Super 클래스의 객체를 생성할 때 생성자에 매개변수를 전달하면서, 해당 생성자에서 문자를 출력하고, 상속받은 Sub 클래스에서는 super()를 사용하여 부모 클래스의 생성자를 호출합니다. 결과적으로 “AC”와 “ADB”가 출력됩니다. class Super { // 기본 생성자 Super() { System.out.print('A'); } // 매개변수가 있는 생성자 Super(char x) { System.out.print(x); } } class Sub extends Super { // Sub 클래스의 기본 생성자 Sub() { super(); // Super 클래스의 기본 생성자 호출, 'A' 출력 System.out.pr..

Programming/Java 2023.12.22

[C] 지역 변수, 정적 변수 설명

#include int main() { int a = 1; // (1) 지역 변수 a를 1로 초기화 static int b = 2; // (2) 정적 변수 b를 2로 초기화 { int a = 3; // (3) 새로운 지역 범위에서 지역 변수 a를 3으로 초기화 b = a + 4; // (4) 외부 범위에서 선언된 정적 변수 b의 값을 변경 (b = 3 + 4) printf("%d %d\n", a, b); // (5) 현재 범위의 a와 변경된 b를 출력 (3 7) } printf("%d %d\n", a, b); // (6) 외부 범위의 a와 변경된 b를 출력 (1 7) return 0; } 결과: 3 7 1 7 지역 변수와 정적 변수는 프로그램에서 사용되는 변수의 특성에 따라 차이가 있습니다. 1. **지..

Programming/C 2023.12.22

Java | 논리 연산자

[출처] 신용권 / 이것이 자바다 / 한빛미디어 논리 연산자 : 흐름 제어문인 조건문(if) / 반복문인 for문 / while문 등에서 주로 이용된다. 논리곱(&&) 논리합(||) 배타적 논리합(^) 논리 부정(!) AND (논리곱) 연산식 : 피연산자 모두가 true일 경우에만 연산 결과가 true true &&(&) ture = true true &&(&) false = false false &&(&) true = false false &&(&) false = false OR (논리합) 연산식 : 피연산자 중 하나만 true이면 연산 결과는 true true ||(|) true = true true ||(|) false = true false ||(|) true = true false ||(|) f..

생활 기록 2023.07.18

Java | 정수타입별 메모리 크기 / 저장값

[출처] 신용권 / 「이것이 자바다」 / 한빛미디어 타 입 메모리 크기 저장되는 값의 허용범위 byte 1byte 8bit -2^7~(2^7-1) -128~127 short 2byte 16bit -2^15~(2^15-1) -32,768~32,767 char 2byte 16bit 0~(2^16-1) 0~65535 (유니코드) int 4byte 32bit -2^31~(2^31-1) -2,147,483,648~2,147,483,647 long 8byte 64bit -2^63~(2^63-1) -9,223,372,036,854,775,808~9,223,372,036,854,775,807 * 1byte=8bit 0과 1이 저장되는 단위

생활 기록 2023.07.13
반응형