전체 글 45

[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

[CS] 요구사항 확인 - 현행 시스템 분석

➀ 플랫폼 성능 특성 측정 항목경과 시간 : 애플리케이션에 작업을 의뢰한 시간 ~ 처리가 완료될 때까지 걸린 시간사용률 : 작업 처리하는 동안 cpu,메모리 등의 자원 사용률응답시간 : 애플리케이션에 요청을 전달한 시간 ~ 응답이 도착할 때까지 걸린 시간가용성 : 서버와 네트워크, 프로그램 등의 정보 시스템이 정상적으로 사용 가능한 정도➁ 운영체제 현행 시스템 분석 고려 사항관점고려 사항설명품질 측면신뢰도장기간 시스템 운영 시 운영체제의 장애 발생 가능성 여부운영체제의 버그로 인한 재기동 여부성능대규모 및 대량 파일 작업(배치 작업) 처리지원 가능한 메모리 크기 (32bit, 64bit)지원 측면기술 지원공급사들의 안정적인 기술 지원오픈소스 여부주변 기기설치 가능한 하드웨어다수의 주변 기기 지원 여부구축..

CS 2025.01.18

[Algorithm] 순열 : 재귀함수로 만드는 순열

🎈 코드 예시#include using namespace std;vector v;void printV(vector &v){ for (int i = 0; i  매개변수:n: 입력 데이터의 크기 (벡터 v의 길이)r: 선택할 개수 (여기서는 3개)depth: 현재 생성 중인 순열의 깊이 (재귀 깊이)작동 원리:종료 조건:r == depth: 선택할 개수만큼 선택한 경우(현재 순열 완성) printV(v)를 호출하여 순열을 출력하고 종료재귀 호출:반복문으로 현재 depth부터 n까지 순회하며 swap을 사용하여 요소의 순서를 변경순열을 하나씩 생성한 뒤, 다시 원래 순서를 복원(백트래킹).swap을 두 번 해주는 이유ex) {1,2,3}에서 swap하여 새로운 순열 {1,3,2}를 생성하고 makePe..

Algorithm 2025.01.11

[자바 ORM 표준 JPA 프로그래밍] JPA란?

JPA(Java Persistence API)는 자바 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음이다.즉, 실제적으로 구현된 것이 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크이다.JPA를 구현한 대표적인 오픈소스로는 Hibernate가 있다. 자바 진영의 ORM 기술 표준이란?객체 관계 매핑객체는 객체대로 설계 & 관계형 데이터베이스는 관계형 데이터베이스대로 설계ORM 프레임워크가 중간에서 매핑 (패더라임 불일치 해결해 줌)대중적인 언어에는 대부분 ORM 기술이 존재JPA는 표준 명세JPA는 인터페이스의 모음 JPA는 애플리케이션과 JDBC 사이에서 동작 JPA 동작 - 저장JPA에서 멤버 회원 객체를 저장해 주라며 JPA에 ..

개발/Spring 2025.01.11

[Algorithm] 순열 : 개념과 next_permutation

순열과 조합의 사용 상황순서와 상관 O 뽑는다면 ⇒ 순열{1,2,3} 중 2개 : {1,2}, {2,1}, {2,3}, {3,2}, {1,3}, {3,1}순서를 재배치하여...~한 순서의 경우 max 값을...순서와 상관 X 뽑는다면 ⇒ 조합{1,2,3} 중 2개 : {1,2}, {2,3}, {1,3} next_permutation (C++제공)매개변수 : from(시작지점), to(끝지점 : to부분은 포함되지 않기 때문에 +1해줘야함) from ≤ 순열  오름차순으로 정렬된 배열을 기반으로 순열을 만든다.참고) prev_permutation (C++제공)내림차순으로 정렬된 배열을 기반으로 순열을 만든다.🎈 코드 예시#include using namespace std;int main(){ int..

Algorithm 2024.11.28

[인공지능/Deep Learning] 딥러닝의 기초 - 활성화 함수

활성화 함수 (Activation Function)정의: 출력값을 활성화시키는 여부를 결정하고 그 값을 부여하는 함수.역할: 퍼셉트론의 출력값을 결정하는 비선형 함수로, 데이터의 비선형성을 반영하기 위해 사용특징선형 시스템의 한계: 선형 함수로만 구성된 네트워크는 다층 구조를 쌓아도 결국 하나의 선형 함수로 축소된다. 따라서 선형 시스템으로는 XOR과 같은 비선형 문제를 해결할 수 없다.비선형성 필요: 활성화 함수는 네트워크가 복잡한 패턴을 학습할 수 있도록 도와준다.주요 활성화 함수1. Sigmoid 함수​모든 입력값에 대해 출력값이 실수값으로 정의출력값이 0과 1 사이의 연속적인 값으로 정의입력값이 작아질수록 0에 가까워지고 커질수록 1에 가까워짐확률 표현 가능 (이진 분류에 유용 : 0~1 사이)...

인공지능 2024.11.22

[인공지능/Deep Learning] 딥러닝의 기초 - 퍼셉트론

퍼셉트론인공신경망 최초의 알고리즘입력층과 출력층만으로 구성된 단층 퍼셉트론(single layer perceptron)의 개념입력층: 여러 개의 입력값(x1, x2,...,xn)을 받음출력층: 단일 출력값을 생성이진 분류(Binary Classification) 모델을 학습하기 위한 지도학습기반의 알고리즘단층 퍼셉트론단층 퍼셉트론은 입력층(x들)과 출력층만으로 구성되어 있으며, 각 입력값은 가중치(weight)와 곱해져 가중합을 계산가중치 (Weight): 각 입력값의 중요도를 나타내며, 학습 과정에서 조정된다. 가중치가 클수록 해당 입력값의 영향력이 커진다.편향 (Bias, b): 뉴런이 얼마나 쉽게 활성화되는지를 조절하는 변수다. 이는 가중합에 추가되어 뉴런의 활성화를 도와준다.x외에도 편향(bias..

인공지능 2024.11.21

[인공지능/Deep Learning] 개념 정리

딥러닝 개요딥러닝은 기계 학습 알고리즘의 한 종류이 알고리즘은 비선형 처리 유닛의 여러 층을 사용하여 특징 추출 및 변환을 수행각 층은 이전 층의 출력을 입력으로 사용하여 처리딥러닝 알고리즘은 지도 학습과 비지도 학습으로 나뉘며, 응용 분야에는 패턴 분석(비지도 학습)과 분류(지도 학습)가 포함됨딥러닝 알고리즘의 구조알고리즘은 다양한 층으로 구성되어 있으며, 각 층은 비선형 처리를 통해 데이터를 변환한다.이러한 구조는 복잡한 데이터 패턴을 학습하는 데 효과적이다.층의 깊이가 증가할수록 모델의 표현력이 향상된다.출력은 각 층의 가중치와 활성화 함수를 통해 결정된다.지도 학습과 비지도 학습딥러닝 알고리즘은 지도 학습과 비지도 학습으로 구분된다.지도 학습:입력 데이터와 그에 해당하는 정답(레이블)이 있는 데이..

인공지능 2024.11.21