전체 글

전체 글

    [UML] 모델링 특징, 구성 요소 및 도구

    특징UML은 객체지향 설게를 위한 표준 언어로, 소프트웨어 시스틈의 산출물을 가시화, 명세화, 구축, 문서화 하는데 사용된다.가시화 : 소프트웨어의 개념 모델을 시각적인 그래픽 형태로 표기하고, 표기법에 사용하는 심볼에 명확한 정의를 부여하는 것이다. 이것을 통해 개발자들은 원할한 소통을 할 수 있다.명세화 : 정확하고, 명백하며, 완전한 모델을 만드는 것을 뜻한다. UML은 소프트웨어 개발을 위한 분석, 설계, 구현 각 단계에서 필요한 모델을 정확하고 완전하게 명세하는 역할을 한다.구축 : 다양한 프로그래밍 언어로 표현하는 것이다. 또한 이미 구축되어 있는 소스코드를 UML로 역변환하여 분석하는 역공학 (Reverse Engineering)도 있다.문서화 : 요구 사항을 표현하고 시스템을 테스트하는 언..

    [DB] 트랜잭션 (Transaction) 4가지 특성

    트랜잭션 (Transcation)데이터베이스의 상태를 변환시키는 하나의 논리적 기능 (예: Update, Delete)을 수행하기 위한 작업의 단위 혹은 일련의 연산들을 말한다.특성1. 원자성(Atomicity)트랜잭션의 연산은 데이터베이스에 전부 반영이 되어야하거나 전부 반영이 되지 않아야한다.즉, 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 모두가 완벽히 수행되지 않고 어느 하나라도 오류가 발생하면 트랜잭션 전부가 취소되어야 한다. 2. 일관성(Consistency)트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환한다.시스템이 가지고 있는 고정요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 한다. 3. 독립성(Isolation)하나의 트..

    단위 테스트 (컴포넌트 테스트) / 드라이버 (Driver), 스텁 (Stub), 오라클 (Oracle)

    단위 테스트(컴포넌트 테스트)_드라이버(Driver), 스텁(Stub), 오라클(Oracle), 통합 테스트- 테스트 드라이버(Driver) : 테스트 대상 모듈을 호출하는 더미 프로그램- 테스트 스텁(Stub) : 테스트 대상 모듈에 의해 호출되는 프로그램테스트 관련 용어- 테스트 베이시스(Test Basis) : 테스트케이스 생성시 기초 자료 (기능, 요구사항, 제약사항명시)- 테스트 케이스(Test Case) : 특별한 목표 또는 상황을 테스트 하기 위한 입력값, 사전조건, 예상 결과, 사후조건 들의 집합- 테스트 수트(Test Suite) : 테스트 대상 컴포넌트나 시스템에 사용되는 여러 테스트 케이스 집합으로 TestCase간 사전/사후조건 연관 관계 포함- 테스트 스크립트(Test Script..

    [Python] Encrypt / Decrypt

    alphabet = []def Init(): idx = 0 for i in range(97, 123): alphabet.append(chr(i))def Encrypt(plainTxt, shiftAmt, code = 0): cipherTxt = "" for letter in plainTxt: pos = alphabet.index(letter) newPos = pos + shiftAmt if code == 0 else pos - shiftAmt cipherTxt += alphabet[newPos] return cipherTxtdef Decrypt(plainTxt, shiftAmt): return Encrypt(plainTxt,..

    [Python] 비슷한 연산자의 차이 (is, ==, and, &, or, |)

    1. is / ==is객체의 주소값이 같으면 True를 반환한다.Object Identity OperatorReference Comparison (참조 비교) ==객체의 값이 같으면 True를 반환한다.Equal Comparison Operator(비교 연산자)Value Comparison (값 비교)a = 10b = 10print("a is b =", a is b)print("a == b =", a == b)print("id(a) =", id(a))print("id(b) =", id(b))// 결과a is b = Truea == b = Trueid(a) = 4545772160id(b) = 4545772160a = 999b = 999print("a is b =", a is b)print("a == b =..

    [Unity] 모바일 해상도 대응

    해상도 (resolution)이미지/영상 등을 표현하는 데 몇 개의 픽셀(pixel)로 이루어졌는지를 폭넓게 나타내는 말해상도와 관련된 내용은 유니티 툴의 Game 창에서 추가하거나 설정할 수 있다.캔버스모든 UI 요소는 Canvas 안에 위치해야 한다. 캔버스는 Canvas 컴포넌트가 있는 게임 오브젝트이며 모든 UI 요소는 반드시 어떤 캔버스의 자식이여야 한다.UI 요소 생성, 예를 들어 GameObject > UI > Image 메뉴를 사용하여 이미지를 생성하면 (씬에 아직 캔버스가 없을 경우)자동으로 캔버스를 생성한다. 이 때 이 UI 요소는 이 캔버스의 자식으로서 생성된다.캔버스 영역은 씬 뷰에서 사각형으로 나타나므로 매번 게임 뷰가 보이게 하지 않고도 UI 요소를 배치하기 용이하다. Canva..

    [C++] C++ 17 표준 라이브러리의 알고리즘 병렬화

    알고리즘의 병렬화C++ 17은 표준 라이브러리의 여러 알고리즘에 '병령 실행'을 지원하는 중복적재 버전을 추가하며, 병렬 실행을 지원하는 새 알고리즘도 여럿 추가한다. 예를 들어 기존 알고리즘인 std::transform에는 다음과 같은 중복 적재 버전들이 추가되었다.FwdIt2 transform( ExePolicy&& policy, FwdItIt1 first1, FwdItIt1 last1, FwdIt2 d_first, UnFunc func);FwdIt3 transform( ExePolicy&& policy, FwdIt1 first1, FwdIt1 last1, FwdIt2 first2, FwdIt3 d_first, BiFunc func ..

    [C++] 문자열 뒤집는 방법 string

    출처 X 개인이 작성한 코드string은 vector형이므로 vector형 테스트 x1. algorithm 헤더 파일 내 reverse 함수 사용두 개의 오버로딩 함수가 존재한다 아래껀 일단 생략한다, && 임시값인 _Enable_if_execution_policy 플래그인데 용도를 잘 모르겠다. 이번에 쓰여질 함수 원형은 아래와 같다, First는 시작 지점의 포인터와 Last는 마지막 지점 // string 사용string s = "algorithm";cout  // 배열 사용, 특이사항: const char*로 문자열 초기화 시 const이기 때문에 reverse 함수가 작동되지 않는다.끝 인덱스를 구하기 위해선 단순하게 총 길이에서 1만큼 빼주면 된다.char s[] = "algorithm";co..

    [LeetCode] 151. Reverse Words in a String

    내가 작성한 코드reverse(s.begin(), s.end());string str, ans;for (auto iter = s.begin(); iter != s.end(); iter++){ char ch = *iter; if (ch == ' ') { if (str == "") continue; reverse(str.begin(), str.end()); ans += str + ' '; str = ""; } else str += ch;}reverse(str.begin(), str.end());if (str == "") ans.pop_back();return ans + str; 인터넷에서 퍼온 코드stringstream st(s);string word;vector ans;while (st >> ..

    [C] main()과 return 사용 이유, 설명

    C 프로그램 동작 방식C 프로그램은 main() 이라는 함수가 운영체제(OS) 에서 호출되면서 시작되고, 그 main 함수가 호출되면 main 이름으로 정의된 block으로 진입하여, bloc 내의 명령문들을 순서대로 실행하게 된다. User는 사용자다. Application을 c 프로그램이라고 생각해보자.프로그램은 '함수의 집합체'이니 예를 들어서 프로그램도 함수라고 가정한다면, 그 함수를 호출하는 주체는 OS이며, 결국 거대한 함수이다. O/S가 프로그램을 실행한다는 것은 특정 실행 파일에 존재하는 'main' 함수를 호출하는 것이다. [그림 1]에서 볼 수 있는 call main() 위의 [그림1]의 Application 부분의 오른쪽 화살표를 보면, C 언어 코드가 적혀있다. 지금 봐야하는 lin..