전체 글 44

4과목 프로그래밍 언어 활용

1. 결합도와 응집도결합도 : 모듈 간의 공유되는 정도 응집도 : 모듈 내부의 공유되는 정도응집도↑, 결합도↓ 좋음. 결합도(모듈 간 관계) 내공외제스자(약해지는 순서)내용결합도-공통결합도-외부결합도-제어결합도-스탬프결합도-자료결합도(데이터결합도)응집도(모듈 내 관계) 우논시절통순기(강해지는 순서)우연적응집도-논리적응집도-시간적응집도-절차적응집도-통신적응집도-순차적응집도-기능적응집도 (결합도)내용결합도 : 한 모듈이 내부 기능 및 내부 자료를 직접 참고하거나 수정할 때공통결합도 : 공유되는 영역 여러 모듈이 사용. 동일한 전역 데이터 접근외부결합도 : 외부의 다른 모듈에서 참조할 때 결합도제어결합도 : 제어하기 위한 목적, 권리 전도 현상스탬프결합도 : 모듈 간 자료 구조가 전달될 때 변화가 생기면 그것..

3과목 데이터베이스 구축

1. 데이터베이스 기초 개념- 릴레이션(테이블) : 데이터를  표 형태로 표현한 것(릴레이션 : 테이블 수)- 속성 : 릴레이션의 열- 차수 : 속성의 수- 튜플 : 릴레이션의 행(튜플 사이에는 순서 없음)- 카디널리티 : 튜플의 수- 도메인 : 속성에 들어가는 원자값 집합 2. DDL, DML, DCLDDL 데이터 정의어 : 데이터 구조를 정의하는 명령어- CREATE : 테이블 생성- ALTER : 테이블 속성 변경(속성 추가하고 싶을 때 등) 테이블의 컬럼 추가, 삭제, 수정 등- DROP : 테이블 드랍 DML 데이터 조작어 : 데이터에 변형을 가하는 명령어 - SELECT : 조회 - INSERT : 삽입- UPDATE : 수정- DELETE : 삭제 DCL 데이터 제어어 : 데이터베이스에 접근..

2과목 소프트웨어 개발

1. 화이트 박스 vs 블랙박스 테스트화이트 박스 테스트 : 내부 소스 코드를 볼 수 있는 테스트- 기초 경로 검사 : 설계나 코드 기초로, 흐름도 작성 후 경로 실행 검사- 제어 구조 검사 : 논리적 조건 테스트 / 프로그램 반복 구조 검사, 변수 사용 검사- 프로그램 구조 고려 블랙박스 테스트 : 내부 구조 모르는 상태에서 테스트- 경계값 분석 : 입력 조건 경계값으로 분석- 동치분할검사 : 입력 자료를 균등하게 배분- 원인-결과 그래프 검사, 오류 예측 검사, 비교 검사 등- 프로그램 구조 고려 안 함 2. 정렬버블정렬 : 한 번 실행 시마다 가장 큰 값이 맨 뒤로 이동/O(N^2)선택정렬 : 가장 작은 값 선택해서 정렬 안 된 가장 왼쪽 값과 변경/ O(N^2)선택, 삽입, 버블 정렬 : O(N^..

1과목 소프트웨어 설계

1. 애자일 방법론- 정의 : 고객 요구사항 변화에 중심을 둔 개발 방법론- 주요 가치 : 용기, 단순성, 의사소통, 피드백, 존중(용단의피존)- XP(익스트림 프로그래밍) : 애자일 방법론을 통한 프로그래밍 기법 중 하나※ 고객 요구사항 최우선이기에 유연한 방법론이고, 문서 중심이 X    종류 : XP, 스크럼, 린, DSDM(동적 시스템 개발 방법론), FDD(기능 중심 개발) 2. UI 설계원칙(직유학유)- 직관성 : 누구나 쉽게 이해하고 사용할 수 있어야 한다.- 유효성 : 사용자 목적을 정확히 달성할 수 있어야 한다.- 학습성 : 누구나 쉽게 배우고 익힐 수 있어야 한다.- 유연성 : 사용자 요구에 최대한 수용하고 오류를 최소화해야한다. ※ 오류를 숨겨서는 안된다. 2-1. UI 종류CLI(C..

[백준 15649] N과 M(1) python

백트래킹에 대해 이번 기회에 제대로 정리해보겠다.백트래킹이란?백트래킹은 모든 경우의 수를 고려하는 알고리즘을 의미.트리 형태의 상태공간이 있을 때, DFS와 같은 완전탐색 알고리즘을 사용하여 모든 지점을 탐색하게 됨.DFS는 현재 지점에서 방문할 곳이 있으면 재귀를 호출하여 계속 이동하는 특징이 있음.하지만, DFS는 모든 곳을 방문하기 때문에 비효율적인 면이 있음. 백트래킹은 DFS를 사용하여 만약 조건에 맞지 않으면 중단하고 이전으로 돌아가서 다시 확인하는 것을반복하고, 원하는 조건을 효율적으로 찾는 알고리즘.백트래킹과 DFS의 차이점?DFS는 연결되어있는 모든 노드들을 깊이 우선순위에 따라 탐색하는 알고리즘.백트래킹은 DFS를 사용하여 어떤 노드의 유망성을 점검한 후, 유망하지 않으면 가지치기하는특..

알고리즘 공부 2024.08.12

우선순위 큐

우선순위 큐의 정의우선순위 큐는 들어오는 순서에 상관 없이 우선순위가 높은 데이터가 먼저 나가는 자료구조.우선순위 큐는 힙(Heap)을 이용하는 게 제일 효율적.(큐는 먼저 들어오는 데이터가 먼저 나가는 선입선출 (FIFO) 형식의 자료구조) Heap의 정의완전이진트리 형태의 자료구조완전이진트리 : 마지막 레벨을 제외한 모든 레벨이 모두 채워져 있고, 마지막 레벨은 왼쪽부터 채워져 있어야 함. Heap의 종류최대 힙(Max Heap) : 부모 노드의 키 값이 자식 노드의 키 값보다 큰 구조최소 힙(Min Heap) : 부모 노드의 키 값이 자식 노드의 키 값보다 작은 구조 힙 자료 구조heapq 모듈은 이진트리 기반의 최소 힙 자료구조 제공함.ex) 힙에 원소 추가 및 삭제from heapq import..

알고리즘 공부 2024.08.10

[백준 1476번] 날짜 계산 python

문제준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다.지구를 나타내는 수를 E, 태양을 나타내는 수를 S, 달을 나타내는 수를 M이라고 했을 때, 이 세 수는 서로 다른 범위를 가진다. (1 ≤ E ≤ 15, 1 ≤ S ≤ 28, 1 ≤ M ≤ 19)우리가 알고있는 1년은 준규가 살고있는 나라에서는 1 1 1로 나타낼 수 있다. 1년이 지날 때마다, 세 수는 모두 1씩 증가한다. 만약, 어떤 수가 범위를 넘어가는 경우에는 1이 된다.예를 들어, 15년은 15 15 15로 나타낼 수 있다. 하지만, 1년이 지나서 16년이 되면 16 16 16이 아니라 1 16 16이 된다. 이유는 ..

알고리즘 공부 2024.08.09

[백준 14888번] 연산자 끼워넣기 python

문제N개의 수로 이루어진 수열 A1, A2, ..., AN이 주어진다. 또, 수와 수 사이에 끼워넣을 수 있는 N-1개의 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있다.우리는 수와 수 사이에 연산자를 하나씩 넣어서, 수식을 하나 만들 수 있다. 이때, 주어진 수의 순서를 바꾸면 안 된다.예를 들어, 6개의 수로 이루어진 수열이 1, 2, 3, 4, 5, 6이고, 주어진 연산자가 덧셈(+) 2개, 뺄셈(-) 1개, 곱셈(×) 1개, 나눗셈(÷) 1개인 경우에는 총 60가지의 식을 만들 수 있다. 예를 들어, 아래와 같은 식을 만들 수 있다.1+2+3-4×5÷61÷2+3+4-5×61+2÷3×4-5+61÷2×3-4+5+6식의 계산은 연산자 우선 순위를 무시하..

알고리즘 공부 2024.08.09

[백준 13301번] 타일 장식물 python

문제대구 달성공원에 놀러 온 지수는 최근에 새로 만든 타일 장식물을 보게 되었다. 타일 장식물은 정사각형 타일을 붙여 만든 형태였는데, 한 변이 1인 정사각형 타일부터 시작하여 마치 앵무조개의 나선 모양처럼 점점 큰 타일을 붙인 형태였다. 타일 장식물의 일부를 그리면 다음과 같다.그림에서 타일에 적힌 수는 각 타일의 한 변의 길이를 나타낸다. 타일 장식물을 구성하는 정사각형 타일 한 변의 길이를 안쪽 타일부터 시작하여 차례로 적으면 다음과 같다.1, 1, 2, 3, 5, 8, ... 지수는 문득 이러한 타일들로 구성되는 큰 직사각형의 둘레가 궁금해졌다. 예를 들어, 처음 다섯개의 타일이 구성하는 직사각형(위에서 빨간색으로 표시한 직사각형)의 둘레는 26이다.타일의 개수 N(1 ≤ N ≤ 80)이 주어졌을..

알고리즘 공부 2024.08.08

[백준 4659번] 비밀번호 발음하기 python

문제좋은 패스워드를 만드는것은 어려운 일이다. 대부분의 사용자들은 buddy처럼 발음하기 좋고 기억하기 쉬운 패스워드를 원하나, 이런 패스워드들은 보안의 문제가 발생한다. 어떤 사이트들은 xvtpzyo 같은 비밀번호를 무작위로 부여해 주기도 하지만, 사용자들은 이를 외우는데 어려움을 느끼고 심지어는 포스트잇에 적어 컴퓨터에 붙여놓는다. 가장 이상적인 해결법은 '발음이 가능한' 패스워드를 만드는 것으로 적당히 외우기 쉬우면서도 안전하게 계정을 지킬 수 있다. 회사 FnordCom은 그런 패스워드 생성기를 만들려고 계획중이다. 당신은 그 회사 품질 관리 부서의 직원으로 생성기를 테스트해보고 생성되는 패스워드의 품질을 평가하여야 한다. 높은 품질을 가진 비밀번호의 조건은 다음과 같다.모음(a,e,i,o,u) ..

알고리즘 공부 2024.08.08