CS 11

[CS] Java 기초 (배열)

배열 ◼︎ 선언 방법 (1)자료형[] 변수명 = new 자료형[크기]; int[] numbers = new int[5];String[] names = new String[3]; ◼︎ 선언 방법 (2)자료형 변수명 [] = new 자료형[크기]; int numbers[] = new int[5];String names[] = new String[3]; ◼︎ 선언 방법 (3)자료형[]  변수명 = new 자료형[]{값1, 값2,...};int[] numbers = new int[]{1,2,3,4,5};String[] names = new String[]{"A","B","C"};자료형[]  변수명 = {값1, 값2,...};int[] numbers = {1,2,3,4,5};String[] names = {"A"..

CS 2025.02.14

[CS] Java 기초 (형 변환, 문자열 기능)

형 변환(자료형) 변수명 or 값;int score = 93;float score_f = (float)score;double score_d = (double)93;이때 (float) 과 (double)은 생략이 가능한데, 이를 묵시적 형 변환(=자동 형 변환)이라고 한다.즉, int ➝ long ➝ float ➝ double 처럼 데이터 크기가 작은 것을 보다 더 큰 것으로 변환하는 것은 생략 가능하다. 반대로, 명시적 형 변환은 double ➝ float ➝ long ➝ int 처럼 데이터 크기가 큰 것을 보다 작은 것으로 변환하는 것이므로 이 과정에서는 데이터의 손실이 발생할 수 있으므로 변화하려는 자료형을 생략할 수 없다. 문자열 기능String s = "I like Java" ;기능설명 예시결과l..

CS 2025.02.14

[CS] 소프트웨어 설계 -소프트웨어 아키텍처 패턴

◼︎ 소프트웨어 아키텍처 패턴 유형계층화 패턴(Layered Pattern)시스템을 계층으로 구분하여 구성각 하위 모듈들은 특정한 수준의 추상화를 제공, 각 계층은 다음 상위 계층에서 서비스를 제공서로 마주 보는 두 개의 계층 사이에서만 상호 작용이 이루어짐대표적으로 OSI 참조모델이 있음클라이언트-서버 패턴(Client-Server Pattern)하나의 서버 & 다수의 클라이언트로 구성사용자가 클라이언트 통해 서버에 서비스 제공서버는 클라이언트에게 서비스를 제공서버는 계속 클라이언트로부터 요청을 대기파이프 - 필터 패턴(Pipe-Filter Pattern)데이터 스트림을 생성하고 처리하는 시스템에서 사용 가능한 단방향 패턴데이터 스트림 : 데이터가 송/수신 되거나 시간의 흐름에 따라 연속적으로 생성되고..

CS 2025.01.21

[CS] 소프트웨어 설계 - 분석 모델 확인(모델링/분석 자동화)

(1) 모델링 기법◼︎ 모델 모델은 객체, 시스템, 개념에 대한 구조나 작업을 보여주기 위한 패턴이다.이는 개발 대상을 추상화하고 기호나 그림 등으로 시각적으로 표현한다. 모델 특징SW에 대한 이해도 향상, 이해 당사자 간의 의사소통 향상문제 상황에 대한 이해도 높이고 해결책 설명향후 개발될 시스템에 대한 유추 가능개념 모델은 문제 도메인의 엔터티 들과 관계 및 종속성을 반영◼︎ 모델링: 모델링은 실세계의 물리현상을 특정한 목적에 대응하여 이용하기 쉬운 형식으로 표현하는 기법이다. 모델링 특징여러 분야의 엔지니어들이 공통된 개념을 공유하는 데 도움을 줌개발팀이 응용문제를 이해하는 데 도움을 줄 수 있음모델링 작업의 결과물은 다른 모델링 작업에 영향을 줄 수 있음절차적인 프로그램을 위한 자료 흐름도는 프로..

CS 2025.01.20

[CS] 소프트웨어 설계 - 애자일 방법론

애자일 방법론이란?소프트웨어 개바방법론의 하나로서 개발과 함께 즉시 피드백을 받아서 유동적으로 개발하는 방법이다. ◼︎ 애자일 방법론 등장 배경소프트웨어 개발 환경의 변화기존 개발방법론의 한계◼︎ 애자일 방법론 특징프로젝트 요구사항은 기능 중심으로 정의한다.절차와 도구보다 개인과 소통을 중요하게 생각한다.작업 계획을 짧게 세워 요구 변화에 유연/신속하게 대응할 수 있다.소프트웨어가 잘 실행되는 데 가치를 둔다.고객과 피드백 중요하게 생각한다.◼︎ 애자일 선언문 **애자일 방법론을 실천하기 위한 주요 원칙공정과 도구보다 개인과 상호 작용계획을 따르기보단 변화에 대응하기포괄적인 문서보다는 동작하는 소프트웨어계약 협상보다 고객과의 협력◼︎ 애자일 방법론 유형XP, 린(Lean), 스크럼(SCRUM)① XP(e..

CS 2025.01.19

[CS] 소프트웨어 설계 - UML 다이어그램(시퀀스/상태)

③ 시퀀스 다이어그램시퀀스 다이어그램은 객체 간 상호 작용을 메시지 흐름으로 표현한 다이어그램이다. ◼︎ 시퀀스 다이어그램 구성요소구성요소 5가지객체 (object)객체는 위쪽에 표시되며 아래로 생명선을 가짐객체는 사각형 안에 밑출 친 이름으로 명시생명선 (Lifeline)객체로부터 뻗어 나가는 점선실제 시간이 흐름에 따라 객체의 생명주기 동안 발생하는 이벤트를 명시실행 (Activation)직사각형은 오퍼레이션(함수)이 실행되는 시간을 의미직사각형이 길어질수록 오퍼레이션 수행 시간이 긺메시지 (Message)객체 간의 상호 작용은 메시지 교환으로 이루어짐한 객체에서 다른 객체로의 메시지를 전달하여 전달받은 객체의 오퍼레이션을 수행 회귀 메시지 (Self-Message)같은 객체에 대한 함수(메서드)를 ..

CS 2025.01.19

[CS] 소프트웨어 설계 - UML 다이어그램(클래스/유스케이스)

① 클래스 다이어그램클래스 다이어그램은 객체 지향 모델링 간 시클래스의 속성 및 연산과 클래스 간 정적인 관계를 표현한 다이어그램이다.즉, 클래스 간의 관계와클래스의 속성을 표현한다. ◼︎ 클래스 다이어그램 구성 요소구성 요소 4가지 이름속성연산접근 제어자구성요소설명클래스 이름 (Class Name)- 클래스의 이름속성 (Attribute)- 클래스의 특징에 이름을 부여연산 (Operation)- 클래스에 속하는 객체에 적용될 메서드를 정의- 클래스가 수행하는 책임- 클래스의 동작을 의미하여, UML에서는 동작에 대한 인터페이스를 지칭접근 제어자 (Access Modifier)클래스에 접근할 수있는 정도를 표현- : 클래스 내부 접근만 허용 (private)+ : 클래스 외부 접근을 혀용 (public)..

CS 2025.01.19

[CS] 소프트웨어 설계 - UML 기본 개념

UML은 객체 지향 소프트웨어 개발 과정에서 산출물을 명세화, 시각화, 문서화할 때 사용되는 모델링 기술과 방법론을 통합해서 만든 표준화된 범용 모델링 언어이다.  ◼︎ UML의 특징 **가구명문 (생활 가구의 명문!)가시화 언어 : 오류 적고 의사소통 용이구축 언어 : 다양한 프로그래밍 언어로 실행 시스템의 예측 가능 & UML을 소스코드로 변환하여 구축 가능, 역 변환하여 역공학 가능명세화 언어 : 정확한 모델 제시, 완전한 모델 작성 가능문서화 언어 : 시스템에 대한 평가 및 의사소통의 문서◼︎ UML의 구성 요소사과다사물 : 추상적인 개념, 주제를 나타냄, '명사' or '동사'를 의미관계 : 사물의 의미를 확장 & 명확히, 사물과 사물을 연결하여 관계를 표현, '형용사' or '부사'를 의미다이..

CS 2025.01.18

[CS] 요구사항 분석 기법 - 자료 사전 (DD)

◼︎ 요구사항 분석에 사용하는 기능 모델링 기법➁ 자료 사전(DD)  자료 요소, 자료 요소들의 집합, 자료의 흐름, 자료 저장소의 의미와 그들 간의 관계, 관계 값, 범위, 단위들을 구체적으로 명시하는 사전파일 혹은 데이터베이스에 있는 자료에 대한 자료 or 각 자료 항목에 주어진 이름과 길이 그리고 서술과 같은 데이터를 포함하는 참조를 위한 작업► 자료 사전의 작성 목적다른 사람들에게 특정한 자료 용어가 무엇을 의미하는지 알려주기 위해용어의 정의를 조정 & 취합하고 문서로 명확하게 하기 위해자료 흐름도에 나타나는 어떤 자료도 자료 사전에 정의되어 있어야 함► 자료 사전의 기호반복 { }여러 번 반복되는 자료항목은 { } 안에 기술, { }의 좌측에는 최소 반복횟수를 기록하고, 우측에는 최대 반복횟수만..

CS 2025.01.18

[CS] 요구사항 분석 기법 - 기본 개념과 DFD

◼︎ 요구분석 (Requirements Analysis)의 개념사용자의 요구를 추출하여 목표를 정하고 어떤 방식으로 해결할 것인지 결정하는 단계개발 대상에 대한 사용자의 요구사항 중 명확하지 않거나 모호하여 이해되지 않는 부분을 발견하고 이를 걸러내기 위한 과정◼︎ 요구분석의 특징 **소프트웨어 개발의 실제적인 첫 단계 (사용자의 요구에 대해 이해하는 단계)분석 결과의 문서화로 유지보수에 유용하게 활용 가능소단위 명세서 활용 for more detailed 명세소단위 명세서(Mini Spec) : 데이터 흐름도에 나타나있는 처리 항목을 1~2페이지 정도의 소규모 분량으로 요약하여 작성하는 논리적 명세서개발 비용이 가장 많이 소요되는 단계 X (It's 유지보수 단계)요구분석 중 도메인 분석은 요구에 대한..

CS 2025.01.18