2025-07-31

오늘 배운 것

  1. Java 문법
    • File I/O
      • BufferedReader > InputStreamReader > FileInputStream
      • PrintWriter(가동 가능한 스레드?가 많아서 사용) > BufferedWriter > OutputStreamWriter > FileOutputStream
         import java.io.*;
      
         public class FileIO {
      
         public static void main(String[] args) {
            try (
                  BufferedReader br = new BufferedReader(
                                          new InputStreamReader(
                                                new FileInputStream(
                                                   "src/main/FileIO.java"
                                                   )
                                                )
                  );
                     
                  PrintWriter pw = new PrintWriter(
                                       new BufferedWriter(
                                             new OutputStreamWriter(
                                                new FileOutputStream("src/main/output.txt")
                                                )
                                             )
                  );
               ) {
                     
                  String line = null;
                  while ((line = br.readLine()) != null) {
                     pw.println(line);
                     pw.flush();
                  }
                     
                  System.out.println("File Write Success");
                     
               } catch (IOException e) {
                  e.printStackTrace();
               }
                  
            }
      
         }
      
  2. Front-end
    • XML
      • 마크업 언어
      • 태그 형식으로 작성
      • HTML, SGML, etc.

        Well formed : 규칙을 잘 준수한 문서

    • SAX (Simple API for XML parser)
      • XML 문서를 읽고, 이벤트 발생 시 특정 메서드 호출
    • DOM
      • 문서를 메모리에 로딩 후 필요한 내용 탐색
      • DOM Tree : 문서 구성 요소를 트리 형태로 구성
    • JSON
      • 객체를 key-value 형태로 관리
  3. 정처기 필기 오답노트

    Walkthrough

    • 사용사례를 확장하여 명세하거나 설계 다이어그램, 원시 코드, TC 등에 적용 가능
    • 복잡한 알고리즘 / 반복 / 실시간 동작 / 병행 처리 등의 기능이나 동작 이해에 유용
    • Inspection과 다른 의미 (정형, 체계적 방법으로 엄격하게 코드나 문서를 검토)
    • 단순한 TC를 이용해 프로덕트를 수작업으로 수행하는 것을 의미

    XP의 5가치
    의사소통, 단순성, 용기, 존중, 피드백 (정형 분석 X)

    MOM(메시지 지향 미들웨어)

    • 느리고 안정적인 응답이 필요한 업무에 적합 (빠른 응답은 RPC 방식)
    • 독립적인 애플리케이션을 하나의 통합 시스템으로 묶는 역할
    • 송신측과 수신측 연결 시 메시지 큐 활용
    • 상이한 애플리케이션 간 비동기 통신 지원

    하향식 설계

    • 통합 검사 시 인터페이스가 이미 정의되어 있어 통합 간단
    • 레벨 낮은 데이터 구조의 세부 사항은 설계 초기 단계에서 필요

    상향식 설계

    • 인터페이스가 이미 성립되어 있지 않아도 기능 추가 용이

    모델링

    • 개발팀의 응용 문제 이해에 도움
    • 유지보수 단계에서만 활용 (X)
    • 개발될 시스템에 대해 여러 분야 엔지니어들의 공통 개념 공유에 도움
    • 절차적인 프로그램의 자료 흐름도 = 프로세스 위주의 모델링 방법

    UML 관계

    • Association : 연관, 단순 인지
    • Dependency : 의존, 변화가 타클래스에 영향
    • Generalization : 일반화, 상속
    • Realization : 실체화, 부모의 불완전을 자식에서 구현(인터페이스, 구현클래스)

    마스터-슬레이브 아키텍처

    • 실시간 시스템에서 사용
    • 마스터는 연산, 통신, 조정 책임
    • 마스터는 슬레이브 제어 가능
    • 슬레이브는 데이터 수집 기능 수행

    Coad-Yourdon 방법

    • E-R 다이어그램 사용, 객체 행위를 데이터 모델링하는데 초점
    • 객체 식별, 구조 식별, 주체 정의, 속성 및 관계 정의 단계 포함

    Booch 방법

    • 미시적, 거시적 개발 프로세스 모두 사용
    • 클래스와 객체들을 분석/식별하고 클래스 속성/연산 정의

    Jacobson 방법

    • Use Case를 사용한 분석

    Wirfs-Brock 방법

    • 분석과 설계 간 구분 X
    • 고객 명세서 평가부터 설계 작업까지 연속적 수행

    DFD 구성 요소
    Process, Data Flow, Data Store

    UML 구성 요소
    Things, Relationship, Diagram

    Cohesion
    한 모듈 내 각 구성 요소들이 공통의 목적을 달성하기 위해 서로 얼마나 관련이 있는지 기능적 연관의 정도를 나타내는 것

    클래스
    하나 이상의 유사한 객체들을 묶어 하나의 공통 특성으로 표현한 것

    직관성
    UI 설계 원칙 중, 누구나 쉽게 이해하고 사용할 수 있어야 하는 특성

    CLI
    DOS, UNIX 등에서 정해진 명령 문자열을 입력해 시스템 조작하는 유저 인터페이스

    Agile 개발

    • 개인 상호작용 중시
    • 동작하는 소프트웨어 중시
    • 고객과의 협력 중시
    • 변화 대응 중시

    GoF 디자인 패턴(생성, 구조, 행동) 중 구조 패턴

    • Adapter
    • Bridge
    • Proxy 종류별 패턴 목록

    코드 설계

    • 연상 : 명칭이나 약호와 관계있는 숫자/문자/기호로 코드 부여
    • 블록 : 공통 분모끼리 블록으로 구분
    • 순차 : 일정한 일련번호 부여
    • 표의 숫자 : 항목의 물리적 수치를 그대로 코드 적용
    • 10진 : 10진 분할 반복
    • 그룹 분류 : 특정 기준에 따라 대/중/소분류로 구분
    • 합성 : 2개 이상의 코드 조합

    EAI
    서로 다른 애플리케이션 통합(데이터 - 프로세스 연결), 시스템 간 데이터 흐름 원활
    FEP
    프로세서가 데이터 처리 전에 미리 처리(Front-End Processor)
    GPL
    소프트웨어의 사용/수정/배포 허용하는 라이센스
    Duplexing
    데이터 전송 방식 중, 양방향 전송

    소프트웨어 아키텍처

    • 외부에서 인식할 수 있는 특성이 담긴 소프트웨어의 골격이 되는 기본 구조
    • 이해 관계자들의 품질 요구사항을 반영해 품질 속성 결정
    • 데이터 중심 아키텍처 : 공유 데이터 저장소를 통해 통신, 각 접근자의 수정 및 확장 용이
    • 파이프 필터 아키텍처 : 데이터는 파이프를 통해 ‘단’방향 통신, 이동 시 오버헤드 발생

내일 할 일

  1. Java 문법
  2. 정처기 필기 모의고사 CBT 풀어보고 오답노트

잡소리 : md에서 띄어쓰기 두번하면 줄바꿈 된다!

참고자료

GoF 패턴

results matching ""

    No results matching ""