핌이의 일상

코딩 11

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

나쁜 모듈 : 결합도가 강함. 내부에 직접 영향 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

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

연산자 '/'와 '%'에 대한 설명 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 | 정수타입별 메모리 크기 / 저장값

[출처] 신용권 / 「이것이 자바다」 / 한빛미디어 타 입 메모리 크기 저장되는 값의 허용범위 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

자바 | 랜덤수 1~10 맞추기 (Math / for / if /Scanner)

import java.util.Scanner; //스캐너 있음 public class Program { public static void main(String[] args) throws Exception { //throw Exception** for(int i=10; i>=1; i--){ //10회 카운트다운 int count = i;//count에 i 값 저장 Scanner scan = new Scanner(System.in); System.out.println("1부터 10까지 뽑은 후 enter (남은 횟수" + count + ") : "); //입력창 int score=scan.nextInt(); //Enter 누르면 score에 입력된 수 저장 int j = (int)(Math.random()*..

생활 기록 2023.07.07

자바 | for, if문에 기본 연산만으로 100부터 1까지 거꾸로 소수 찾기

public class Program { public static void main(String[] args) { System.out.println("100에서 1까지 소수 찾기 : "); //제목 int i,j=0; //양끝의 숫자가 들어갈 자리 for(i=100;i>1;i--){ //큰 쪽의 수를 100에서 2까지 거꾸로 1씩 내리기 for(j=2;ji/j){ //11/10=나눈 값 1, 나머지값 1 처럼 되면 소수 System.out.print(" " + i);}}}} //한 칸 간격을 두고 출력 한다. 100에서 1까지 소수 찾기 : 97 89 83 79 73 71 67 61 59 53 47 43 41 37 31 29 23 19 17 13 11 7 5 3 2

생활 기록 2023.07.05

Do it! 첫 코딩_파이썬

56가지 기본 개념 객체지향형 프로그래밍 기계어 데이터 디코딩 오류 랜덤(Random) 램 메모리마크업 언어 메서드 모듈 무한루프 문자열(String) 바이트(Byte) 반복문 변수 비트(Bit) 빌드(Build) 상속(Extend) 생성자 소프트웨어 개발 도구(SDK) 스레드(thread) 스크립트 언어 슬라이싱 시퀀스 아스키(ASCII) 어셈블리어 예외처리 오버라이드(Override) 유니코드(UNICODE) 이벤트(Event) 인덱스 인덱싱 인스턴스 저장 메모리 조건문 캐시 메모리 컴파일러 코드(Code) 코멘트(주석) 클래스 통합 개발 환경(IDE) 판다스 패키지(Package) 프로그래밍 언어 함수 \n 10진법 elif문 for문 if문 immutable input ()mutableprint ..

문화 기록 2023.05.18
반응형