2025/02: 45개의 글

갤럭시탭 강제 부팅 방법

Posted by nkjok
2025. 2. 3. 22:41 일상/일상 속 이슈
반응형

 

갤럭시탭을 강제 부팅하는 방법은 아래와 같습니다

전원 버튼 볼륨 아래 버튼을 동시에 약 7초간 길게 누릅니다.

만약 이 방법이 작동하지 않는다면, 전원 버튼 볼륨 위 버튼을 동시에 눌러보세요.

 

반응형

[요구사항 확인] 1-1 소프트웨어 개발 방법론

Posted by nkjok
2025. 2. 3. 16:11 낙서장[2]/1. 요구사항 확인
반응형
           
  소프트웨어 개발 방법론  
  (1) 소프트웨어 생명주기 모델   
  ● 소프트웨어 생명주기는 시스템의 요구분석부터 유지보수까지 전 공정을 체계화한 절차이다.  
  ● 시스템이 개발될 때부터 운용과 유지보수를 거쳐 생애를 마칠 때 까지  어떠한 순서를 밟는지에 대한 작업 프로세스를 모델화한 것이다.  
           
  (2) 소프트웨어 생명주기 모델 프로세스    
  ▼ 소프트웨어 생명주기 모델 프로세스    
           
  순서 프로세스 설명 활동  
  1 요구사항 분석 ● 다양한 이해관계자의 상출할 수도 있는 요구사항을 고려하여
새로운 제품이나 변경된 제품에 부합하는
요구와 조건을 결정하는 단계
● 기능 요구사항
● 비기능 요구사항
 
   
   
  ● 개발할 소프트웨어의 기능과 제약 조건, 목표 등을
소프트웨어 사용자와 함께 명확히 정의하는 단계
 
   
  2 설계 ● 시스템 명세 단계에서 정의한 기능을 실제 수행할 수 있도록
수행 방법을 논리적으로 결정하는 단계
● 시스템 구조 설계
● 프로그램 설계
● 사용자 인터페이스 설계
 
   
   
  3 구현 ● 설계 단계에서 논리적으로 결정한 문제 해결 방법을
특정 프로그래밍 언어를 사용하여 실제 프로그램을 작성하는 단계
● 인터페이스 구조
● 자료 구조 개발
● 오류 처리
 
   
   
  ● 프로그래밍 언어 선택, 기법, 스타일, 순서 등을 결정하는 단계  
   
  4 테스트 ● 시스템이 정해진 요구를 만족하는지, 예상과 실제 결과가
어떤 차이를 보이는지 검사하고 평가하는 단계
● 단위 테스트
● 통합 테스트
● 시스템 테스트
● 인수 테스트
 
   
   
   
  5 유지보수 ● 시스템이 인수되고 설치된 후 일어나는 모든 활동 ● 예방, 완전 교정, 적응
유지보수
 
   
           
  (3) 소프트웨어 생명주기 모델 종류    
  소프트웨어 생명주기 모델 종류로는 폭포수 모델, 프로토타이핑 모델, 나선형 모델, 반복적 모델이 있다.    
  ▼ 소프트웨어 생명주기 모델 종류    
  종류 설명  
  폭포수 모델
(Waterfall Model)
● 소프트웨어 개발 시 각 단계를 확실히 마무리 지은 후에 다음 단계로 넘어가는 모델  
  ● 가장 오래된 모델  
  ● 선형 순차적 모형으로 고전적 생명주기 모형이라고도 함  
  ● 모형의 적용 경험과 성공 사례가 많음  
  ● 단계별 정의와 산출물이 명확  
  ● 요구사항 변경이 어려움  
  절차: 타당성 검토 -> 계획 -> 요구사항 분석 -> 설계 -> 구현 -> 테스트 -> 유지보수  
   
  포로토타이핑 모델
(Prototyping Model)
● 고객이 요구한 주요 기능을 프로토타입으로 구현하여,
고객의 피드백을 반영하여 소프트웨어를 만들어가는 모델
 
   
  ● 프로토타입은 발주자나 개발자 모두에게 공동의 참조 모델을 제공  
  ● 프로토타입은 구현 단계의 구현 골격  
  나선형 모델
(Spiral Model)
● 시스템 개발 시 위험을 최소하하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델  
  절차: 계획 및 정의 -> 위험 분석 -> 개발 -> 고객 평가  
   
  반복적 모델
(Iteration Model)
● 구축대상을 나누어 병렬적으로 개발 후 통합하거나, 반복적으로 개발하여
점증 완성시키는 SDLC 모델
 
   
  ● 사용자의 요구사항 일부분 혹은 제품 일부분을 반복적으로 개발하여
최종 시스템으로 완성하는 모델
 
   
           
반응형

'낙서장[2] > 1. 요구사항 확인' 카테고리의 다른 글

[요구사항 확인] 미리 알아두기  (0) 2025.01.23

[Java] 자바에서 오버로드와 오버라이드

Posted by nkjok
2025. 2. 2. 16:09 낙서장[1]/91. Java
반응형

자바에서 오버로드와 오버라이드

자바의 중요한 개념인 오버로드(Overload)와 오버라이드(Override)에 대해, 이 두 개념은 객체 지향 프로그래밍에서 자주 등장하는 개념으로, 메서드의 재사용성과 다형성을 구현하는 데 중요한 역할을 한다. 그럼, 오버로드와 오버라이드의 차이점과 예시를 통해 살펴보겠다

오버로드 (Overloading)

오버로드는 동일한 이름을 가진 메서드를 여러 개 정의하되, 매개변수의 타입, 수, 순서가 다르게 정의하는 것을 의미한다.

특징:

  • 매개변수의 타입, 수, 순서가 다르다.
  • 반환 타입은 오버로드에 영향을 미치지 않는다.
  • 동일한 클래스 내에 존재하거나 상속받은 클래스 내에 존재할 수 있다.

예시:

public class Calculator {
    public int add(int a, int b) {
        return a + b;
    }
   
    public double add(double a, double b) {
        return a + b;
    }
   
    public int add(int a, int b, int c) {
        return a + b + c;
    }
}

위의 예제에서 Calculator 클래스는 세 가지 add 메서드를 정의하고 있으며, 각 메서드는 매개변수의 타입이나 수가 다르다.

오버라이드 (Overriding)

오버라이드는 상위 클래스에 정의된 메서드를 하위 클래스에서 동일한 매개변수와 반환 타입으로 재정의하는 것을 의미한다.

특징:

  • 매개변수와 반환 타입이 동일하다.
  • 하위 클래스에서 상위 클래스의 메서드를 덮어쓴다.
  • @Override 애노테이션을 사용하여 컴파일러에게 재정의 의도를 명확히 할 수 있다.

예시:

class Animal {
    void sound() {
        System.out.println("Animal makes a sound");
    }
}

class Dog extends Animal {
    @Override
    void sound() {
        super.sound(); // 상위 클래스의 sound 메서드를 호출한다.
        System.out.println("Dog barks");
    }
}

위의 예제에서 Dog 클래스는 Animal 클래스의 sound 메서드를 동일한 시그니처로 재정의하고 있으며, super 키워드를 사용하여 상위 클래스의 sound 메서드를 호출한 후 추가 동작을 정의한다.

오버로드와 오버라이드 사용 예시

오버로드 사용하는 경우:

  • 동일한 동작을 수행하지만 매개변수가 다른 여러 형태의 메서드를 정의할 때 사용한다.
  • 예를 들어, 다양한 데이터 타입을 처리하는 add 메서드를 정의할 때 사용한다.

오버라이드 사용하는 경우:

  • 상위 클래스의 기본 메서드 동작을 하위 클래스에서 변경하고 싶을 때 사용한다.
  • 예를 들어, 동물 소리를 내는 sound 메서드를 각 동물 클래스에서 구체화할 때 사용한다.

 

 

오버로드와 오버라이드는 자바에서 메서드의 재사용성과 다형성을 구현하는 중요한 개념이다. 오버로드는 매개변수를 다르게 하여 같은 이름의 메서드를 여러 개 정의하는 것이고, 오버라이드는 상위 클래스의 메서드를 하위 클래스에서 동일한 시그니처로 재정의하는 것이다. 이 두 개념을 잘 이해하고 사용하면 더 유연하고 유지보수하기 쉬운 코드를 작성할 수 있다고한다

반응형

[Java] 자바기초, (멤버, 생성자 등)

Posted by nkjok
2025. 2. 2. 13:31 낙서장[1]/91. Java
반응형

자바에서 멤버 함수(메서드)는 클래스 내에 정의된 함수로, 객체의 동작을 정의하는 데 사용된다. 멤버 함수는 객체의 상태를 변경하거나 객체의 데이터를 처리하는 역할을 한다. 예를 들어, 아래의 코드는 간단한 Person 클래스를 정의하고 멤버 함수(메서드)를 포함하고 있다:


public class Person {
    // 멤버 변수 (필드)
    private String name;
    private int age;

    // 생성자
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // 멤버 함수 (메서드)
    public void displayInfo() {
        System.out.println("Name: " + name);
        System.out.println("Age: " + age);
    }

    // Getter 메서드
    public String getName() {
        return name;
    }

    // Setter 메서드
    public void setName(String name) {
        this.name = name;
    }

    // Getter 메서드
    public int getAge() {
        return age;
    }

    // Setter 메서드
    public void setAge(int age) {
        this.age = age;
    }
}

public class Main {
    public static void main(String[] args) {
        // Person 객체 생성
        Person person = new Person("John", 30);

        // 멤버 함수 호출
        person.displayInfo();

        // Getter 메서드 호출
        System.out.println("Name: " + person.getName());
        System.out.println("Age: " + person.getAge());

        // Setter 메서드 호출
        person.setName("Alice");
        person.setAge(25);

        // 변경된 정보 출력
        person.displayInfo();
    }
}
 

위의 예시에서:

  • Person 클래스는 두 개의 멤버 변수(name, age)를 가지고 있다.
  • 생성자는 Person 객체가 생성될 때 호출되며, name과 age를 초기화한다.
  • displayInfo 메서드는 Person 객체의 정보를 출력하는 멤버 함수이다.
  • getName, setName, getAge, setAge 메서드는 각각 name과 age를 가져오고 설정하는 역할을 한다.

이처럼 멤버 함수는 객체의 동작을 정의하고, 객체의 상태를 변경하거나 데이터를 처리하는 데 사용된다. 


public class Person {
    // 멤버 변수 (필드)
    private String name; // 'name'이라는 private 필드를 선언한다.
    private int age;     // 'age'라는 private 필드를 선언한다.

    // 생성자
    public Person(String name, int age) { // 'name'과 'age'를 매개변수로 받는 생성자를 정의한다.
        this.name = name; // 전달된 'name' 매개변수를 'this.name'에 저장한다.
        this.age = age;   // 전달된 'age' 매개변수를 'this.age'에 저장한다.
    }

    // 멤버 함수 (메서드)
    public void displayInfo() { // 'displayInfo'라는 멤버 함수를 정의한다.
        System.out.println("Name: " + name); // 'name' 필드를 출력한다.
        System.out.println("Age: " + age);   // 'age' 필드를 출력한다.
    }

    // Getter 메서드
    public String getName() { // 'name' 필드를 반환하는 'getName' 메서드를 정의한다.
        return name; // 'name' 필드를 반환한다.
    }

    // Setter 메서드
    public void setName(String name) { // 'name' 필드를 설정하는 'setName' 메서드를 정의한다.
        this.name = name; // 전달된 'name' 매개변수를 'this.name'에 저장한다.
    }

    // Getter 메서드
    public int getAge() { // 'age' 필드를 반환하는 'getAge' 메서드를 정의한다.
        return age; // 'age' 필드를 반환한다.
    }

    // Setter 메서드
    public void setAge(int age) { // 'age' 필드를 설정하는 'setAge' 메서드를 정의한다.
        this.age = age; // 전달된 'age' 매개변수를 'this.age'에 저장한다.
    }
}

public class Main {
    public static void main(String[] args) { // 메인 메서드를 정의한다.
        // Person 객체 생성
        Person person = new Person("John", 30); // 'John'과 30을 매개변수로 하여 'Person' 객체를 생성한다.

        // 멤버 함수 호출
        person.displayInfo(); // 'displayInfo' 메서드를 호출하여 'John'과 30을 출력한다.

        // Getter 메서드 호출
        System.out.println("Name: " + person.getName()); // 'getName' 메서드를 호출하여 'name'을 출력한다.
        System.out.println("Age: " + person.getAge());   // 'getAge' 메서드를 호출하여 'age'를 출력한다.

        // Setter 메서드 호출
        person.setName("Alice"); // 'setName' 메서드를 호출하여 'name'을 'Alice'로 변경한다.
        person.setAge(25);       // 'setAge' 메서드를 호출하여 'age'를 25로 변경한다.

        // 변경된 정보 출력
        person.displayInfo(); // 'displayInfo' 메서드를 다시 호출하여 'Alice'와 25를 출력한다.
    }
}
 
반응형

[Java] 자바 접근 지정자 이해하기

Posted by nkjok
2025. 2. 2. 13:05 낙서장[1]/91. Java
반응형

접근지정자


자바 접근 지정자 이해하기

자바에서 중요한 개념인 접근 지정자에 대해 알아보려고 한다. 특히, 클래스와 객체 지향 프로그래밍을 다룰 때 꼭 이해해야 할 내용이다. 자바 접근 지정자의 종류와 각각의 특징을 설명한다.

1. 접근 지정자의 종류

자바에는 네 가지 주요 접근 지정자가 있다. 각 접근 지정자는 클래스, 메서드, 필드 등이 다른 클래스에서 어떻게 접근 가능한지를 결정한다.

  1. private: 동일 클래스 내에서만 접근 가능하다.
  2. default: 동일 패키지 내에서 접근 가능하다.
  3. protected: 동일 패키지 내에서 접근 가능하며, 다른 패키지의 하위 클래스에서도 접근 가능하다.
  4. public: 모든 클래스에서 접근 가능하다.

2. 접근 지정자의 사용 예시

  • private: 'class AA'의 private 멤버는 'class AA' 내에서만 접근 가능하다. 다른 클래스나 패키지에서는 접근이 불가능하다.
  • default: 'class AA'의 default 멤버는 같은 패키지 내의 다른 클래스에서는 접근 가능하지만, 다른 패키지에서는 접근이 불가능하다.
  • protected: 'class AA'의 protected 멤버는 같은 패키지 내의 다른 클래스뿐만 아니라, 다른 패키지의 하위 클래스에서도 접근 가능하다.
  • public: 'class AA'의 public 멤버는 모든 클래스에서 접근 가능하다.

3. 패키지 구조 설명

사진에는 두 개의 패키지(Package A와 Package B)가 있다. 각 패키지에는 여러 클래스가 포함되어 있다. 예를 들어, Package A에는 'class AB', 'class AA', 'class AAC'가 있고, Package B에는 'class BB'와 'class AAB'가 있다. 'class AAC'와 'class AAB'는 'class AA'를 상속받는다.

 

 

자바의 접근 지정자는 코드의 가독성과 유지보수성을 높이는 데 중요한 역할을 한다. 접근 지정자를 적절히 사용하면, 코드의 보안성과 무결성을 유지하면서도 필요한 부분에서만 접근을 허용할 수 있다. 

반응형