※ 각 내용의 출처가 있는 경우, 관련 내용 안에 링크를 걸어 두었습니다.

💡 Java 출력값 구하기

연산자 ^ ➡ 배타적 OR

public class testco {
 public static void main(String[] args) {
  int a = 3, b = 4, c = 3, d = 5;
  if((a == 2 | a == c) & !(c > d) & (1 == b ^ c != d)) {
   a = b + c;
    if(7 == b ^ c != a) {
     System.out.println(a);
    } else {
    System.out.println(b);
    }
  } else {
    a = c + d;
    if(7 == c ^ d != a) {
    System.out.println(a);
    } else {
    System.out.println(d);
    }
  }
 }
}
  • 여기서 첫 번째 if문은 TRUE 
    ( a==2 | a==c ) 에서 a==c에서 일치
    !( c>d ) & ( 1==b ^ c!=d ) 에서 c<d이고, c는 d와 같지 않다.
  • a 값은 b+c의 합으로 7로 대입
  • 두 번째 if문에서 c는 a와 불일치 하므로 TRUE
  • 결과적으로 System.out.println(a); ➡ 7을 출력한다.

💡 C 출력값 구하기

**arr 은 이중포인터로 *arr[0] 값을 가리키고 있으므로 12가 된다.

따라서 *arr[1] + **arr + 1 = 37

💡 SQL

CROSS JOIN은 m*n개의 열을 생성한다. 여기서, T2의 RULE 조건에 따른 s%로 시작하는 NAME이 2개, %t%로 중간에 trk 속한 NAME이 2개이므로 총 4개가 된다.

💡 파이썬 출력값

100과 200은 불일치하는 값이다. 따라서 False를 출력한다.

💡 UML 다이어그램

Use Case 다이어그램 - 요구 분석 과정에서 시스템과 외부와의 상호 작용을 묘사

Acitivy 다이어그램 - 업무의 흐름을 모델링하거나 객체의 생명주기를 표현

Sequence 다이어그램 - 객체 간의 메시지 전달을 시간적 흐름에서 분석

Collaboration 다이어그램 - 객체와 객체가 주고받는 메세지 중심의 작성

Class 다이어그램시스템의 구조적 모습을 그림, 도메인 구조를 나타내어 도메인 안의 개념과 추상적인 개념을 기술, 속성과 메서드를 포함

Component 다이어그램 - 소프트웨어 구조를 그림

Deployment 다이어그램 - 기업 환경의 구성과 컴포넌트들 간의 관계를 그림

💡 객체지향 디자인패턴

생성패턴

  • 빌더 Builder - 생성 단계를 캡슐화 해서 구축 공정을 동일하게 이용하도록 하는 패턴
  • 프로토타입 Prototype - 기존 객체를 복제해서 새 객체를 생성할 수 있도록 하는 패턴
  • 팩토리 메소드 Factory Method - 상위 클래스에서 객체를 생성하는 인터페이스를 정의하고 하위 클래스에서 인스턴스를 생성하는 패턴
  • 추상 팩토리 Abstract Factory - 생성군들을 하나에 모아놓고 팩토리 중에서 선택하게 하는 패턴
  • 싱글톤 Singgleton - 유일한 하나의 인스턴스를 보장하도록 하는 패턴

구조패턴

  • 어댑터 Adapter - 인터페이스로 인해 함께 사용하지 못하는 클래스를 함께 사용하도록 하는 패턴
  • 브릿지 Bridge - 추상과 구현을 분리해서 결합도를 낮춘 패턴
  • 데코레이터 Decorator - 소스를 변경하지 않고 기능을 확장하는 패턴
  • 퍼싸드 Facade - 하나의 인터페이스를 통해 느슨한 결합을 제공하는 패턴
  • 플라이웨이트 Flyweight - 대량의 작은 객체들을 공유하는 패턴
  • 프록시 Proxy - 대리인이 대신 그 일을 처리하는 패턴
  • 컴포지트 Composite - 개별 객체와 복합 객체를 클라이언트에서 동일하게 사용하도록 하는 패턴

행위패턴

  • 인터프리터 Interpreter - 언어 규칙 클래스를 이용하는 패턴
  • 템플릿 메소드 Templete Method - 알고리즘 골격의 구조를 정의한 패턴
  • Chain of Responsibility - 객체끼리 연결 고리를 만들어 내부적으로 전달하는 패턴
  • 커멘드 Command - 요청 자체를 캡슐화해 파라미터로 넘기는 패턴
  • Iterator - 내부 표현은 보여주지 않고 순회하는 패턴
  • 중재자 Mediator - 객체 간 상호작용을 캡슐화한 패턴
  • Memento - 상태 값을 미리 저장해두었다가 복구하는 패턴
  • 옵저버 Observer - 상태가 변할 때 의존자들에게 알리고 자동으로 업데이트하는 패턴
  • 상태 State - 객체 내부 상태에 따라서 행위를 변경하는 패턴
  • 전략 Strategy - 다양한 알고리즘을 캡슐화해 알고리즘 대체가 가능하도록 하는 패턴
  • 방문자 Visitor - 오퍼레이션을 별도의 클래스에 새롭게 정의한 패턴

💡 C 출력값

#include 
 
struct jsu {
  char nae[12];
  int os, db, hab, hhab;
};
 
int main(){
  struct jsu st[3] = {{"데이터1", 95, 88}, 
                    {"데이터2", 84, 91}, 
                    {"데이터3", 86, 75}};
  struct jsu* p;
 
  p = &st[0];
 
  (p + 1)->hab = (p + 1)->os + (p + 2)->db;
  (p + 1)->hhab = (p+1)->hab + p->os + p->db;
 
  printf("%d\n", (p+1)->hab + (p+1)->hhab);
}

C의 출력값을 구하는 문제다.

여기서 main에 printf( ) 값을 보면, p는 st배열의 주소값을 나타내며, p+1이라고 표시된 것은 st[1]의 주소값을 가리킵니다.

(p + 1)->hab = (p + 1)->os + (p + 2)->db;

그러므로 먼저 (p+1)->hab 부분을 보면,  st[1]의 주소값에서 os와 st[2]의 주소값에서 db가 가지는 값의 합입니다. 따라서, 84+75=159가 됩니다.

(p + 1)->hhab = (p+1)->hab + p->os + p->db;

이 부분에서 (p+1)->hab 값인 159와 st[0]의 주소값에서 os와 st[0]의 주소값에서 db가 가지는 값의 합을 의미합니다. 따라서, 159+95+88=342가 됩니다.

그래서 결과적으로 출력되는 값은 159+342=501입니다.

💡 파일구조 File Structure

파일구조는 파일을 구성하는 레코드들이 보조기억장치에 편성되는 방식으로 접근 방식에 따라 방식이 달라진다. 접근 방법중, 레코드들을 키-값 순으로 정렬하여 기록하고, 레코드의 키 항목만을 모은 인덱스을 구성하여 편성하는 방식이 있으며, 레코드를 참조할 때는 인덱스이 가르키는 주소를 사용하여 직접 참조할 수 있다. 파일 구조에는 순차 접근, 인덱스 접근,  해싱 접근이 있다.

💡 GUI

사용자가 그래픽을 통해 컴퓨터와 정보를 교환하는 환경을 말한다. 

💡 소프트웨어 통합 테스트

상향식하향식으로 구분된다. 

상향식은 하위 모듈에서 상위 모듈로 테스트를 진행하는 방식을 말한다. 테스트 드라이버를 사용해야 하며, 하위 모듈과 상위 모듈에 대한 인터페이스 역할을 하는 테스트스텁이 존재한다.

 

 


출처: https://q.fran.kr/%EC%8B%9C%ED%97%98/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%EC%8B%A4%EA%B8%B0/2021%EB%85%84%203%ED%9A%8C

댓글