본문 바로가기

전체 글75

[정보처리기사] 모듈의 결합도(Coupling)와 응집도(Cohesion) 1. 모듈 - 모듈은 시스템의 각 기능으로 소프트웨어의 성능을 향상시키거나 수정 및 재사용을 용이하게 하기 위해 기능 단위로 분해한 것을 말한다. - 모듈의 독립성은 결합도(Coupling)를 약하게, 응집도(Cohesion)를 강하게, 모듈의 크기가 작을 때 독립성이 높아진다. - 독립성이 높은 모듈일수록 모듈을 수정하더라도 다른 모듈들에게는 거의 영향을 미치지 않고, 오류가 발생하더라도 쉽게 발견하고 수정할 수 있다. 2. 결합도(Coupling) - 결합도는 모듈 간에 상호 의존하는 정도 또는 두 모듈 사이의 연관 관계를 의미한다. 결합도가 약할수록 독립적인 모듈 - 결합도는 약할수록 좋다. 결합도 종류 내용 결합도 약함 자료 결합도 (Data Couplign) 모듈 간의 인터페이스가 자료 요소로만.. 2021. 3. 5.
[JavaScropt30] 02. JS and CSS Clock - Date객체 현재시간 JavaScript30 - 바닐라 자바스크립트 Day2 1. 소스코드 - HTML 2. 주목할 만한 문법 2.1. setInterval(함수, 밀리초) - 밀리초(millisecond, ms)마다 함수를 실행시키는 메서드, setInterval() 메서드는 window 객체의 메서드이기 때문에 window.setInterval()처럼 호출할 수도 있지만 window.을 생략하고 setInterval()로 바로 호출할 수도 있다. - 1000 ms = 1 second (1000밀리초 = 1초) // 1초마다 setDate() 함수를 실행 setInterval(setDate, 1000); 참고: www.w3schools.com/jsref/met_win_setinterval.asp Window setInter.. 2021. 3. 5.
[정보처리기사] 정규화(Normalization) 과정과 이상(Anomaly)의 종류 1. 정규화(Normalization) - 정규화란 함수적 종속성 등의 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어 가는 과정이다. - 정규화된 데이터 모델은 일관성, 정확성, 단순성, 비중복성, 안정성 등을 보장한다. 2. 정규화 목적 데이터 구조의 안정성 및 무결성을 유지한다. 효과적인 검색 알고리즘을 생성할 수 있다. 따라서 자료 검색과 추출의 효율성을 높인다. 데이터 중복을 배제하여 이상(Anomaly)의 발생 방지 및 자료 저장 공간의 최소화가 가능하다. 데이터 삽입 시 릴레이션을 재구성할 필요성을 줄인다. 데이터 모형의 단순화가 가능하다. 3. 이상(Anomaly)의 개념 및 종류 - 정규화를 거치지 않은 데이터베이스 내의 데이터들.. 2021. 3. 4.
[정보처리기사] 병행제어 기법 로킹(Locking) 1. 병행제어 기법 로킹(Locking) - 데이터베이스 병행 제어를 위해 트랜잭션(transaction)이 접근하고자 하는 데이터를 잠가(lock) 다른 트랜잭션이 접근하지 못하도록 하는 병행 제어 기법이다. - 트랜잭션이 어떤 데이터에 접근하고자 할 때 로킹을 수행 - 로킹이 되어 있는 데이터에는 다른 트랜잭션이 접근할 수 없음 - 트랜잭션은 로킹이 된 데이터에 대해서만 연산을 수행 - 로킹 단위: 필드, 레코드, 테이블, 파일, 데이터베이스 모두 로킹 단위가 될 수 있다. - 한 번에 로킹 할 수 있는 객체의 크기를 로킹 단위라고 한다. 로킹 단위 로크의 수 병행 제어 로킹 오버헤드 병행성 수준 데이터베이스 공유도 커짐 적어짐 단순해짐 감소 낮아짐 감소 작아짐 커짐 복잡해짐 증가 높아짐 증가 정보처.. 2021. 3. 4.
[정보처리기사] ERD 표기법, 관계형 데이터베이스 릴레이션 구조 1. 개체 관계 다이어그램(ERD; Entity-Relationship Diagram) - E-R 다이어그램은 E-R 모델을 표현하기 위한 것인데 E-R 모델은 개체 타입(Entitiy Type)과 각 타입 간의 관계 타입(Relationship Type)을 이용해 현실 세계를 개념적으로 표현한 것이다. 2. ERD 표기법 - E-R 다이어그램 표기법에는 피터 첸 표기법, 정보 공학 표기법, 바커 표기법 등이 있는데, 이중 E-R모델을 제안한 피터 첸의 표기법이 가장 기본적이다. 2.1. 피터 첸 표기법 - 피터 첸 표기법(Peter Chen Notation)은 1976년 피터 첸(Peter Chen)이 개발한 표기법이다. 기호 기호 이름 의미 사각형 개체(Entitiy) 타입 마름모 관계(Relatio.. 2021. 3. 4.
[정보처리기사] SQL DDL, DML, DCL 1. SQL(Structured Query Language) - sql은 국제 표준 데이터베이스 언어이며, 많은 회사에서 관계형 데이터베이스(RDB; Relational DataBase)를 지원하는 언어로 채택하고 있다. SQL은 질의(Query)어지만 데이터 정의(Data Define), 데이터 조작(Data Manipulation), 데이터 제어(Data Control) 기능을 모두 갖고 있다. 2. SQL의 분류 2.1. DDL(Data Define, Language, 데이터 정의어) - DDL은 SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의하거나 변경 또는 삭제할 때 사용하는 언어이다. - 논리적 데이터 구조와 물리적 데이터 구조의 사상을 정의한다. - 데이터베이스 관리자나.. 2021. 3. 4.
[JavaScript30] 01. JavaScript Drum Kit - 키보드 입력 이벤트 JavaScript30 - 바닐라 자바스크립트 Day1 1. 소스코드 - HTML A clap S hihat D kick F openhat G boom H ride J snare K tom L tink 2. 주목할 만한 문법 2.1. window.addEventListener('이벤트명', 함수) - window객체에 이벤트를 추가하는 메서드 2.1.1. 'keydown' 이벤트 - 키보드가 눌렸을 때 이벤트가 발생 // 키보드 버튼이 눌렸을 때 playing 함수를 실행 window.addEventListener('keydown', playing); 2.2. document.querySelector(`앨리먼트[속성 값="${백 틱 표현식}"]`); - document.querySelector( ): 앨.. 2021. 3. 4.
[정보처리기사] 2과목 소프트웨어 개발 정리 요약 정보처리기사 필기 2과목 소프트웨어 개발 정리 요약 2020년도 1년간 나온 기출문제 위주로 자주 등장(앞으로도 출제될 가능성 높음)하고 외워야 하는 용어나 개념들을 정리했습니다. 2과목의 모든 내용을 담지는 않았고 문제가 출제됐던 개념들만 담았으나 이 요약본이 모든 출제유형을 포함하고 있지는 않습니다. 이점 주의해서 공부하시기 바랍니다. 요약본인 만큼 외워야 할 용어와 기억에 남을만한 단어들을 매치해서 하이라이팅을 줬습니다. 파일에는 용어만 정리 요약 돼있으므로 관련된 문제를 확인하시려면 우측 카테고리에서 정보처리기사 필기 - [2과목] 소프트웨어 개발 를 통해 각 개념의 문제들을 살펴보시는 것을 추천드립니다. '정보처리기사 필기/[2과목] 소프트웨어 개발' 카테고리의 글 목록 개발자 데비너스 devi.. 2021. 3. 3.
[정보처리기사] 자료구조 트리, 이진트리 순회 (preorder, inorder, postorder) 1. 자료구조 트리(Tree)- 트리는 정점(Node, 노드)과 선분(Branch, 가지)을 이용해 사이클(순환)을 이루지 않도록 구성한 그래프(Graph)의 특수한 형태이다.- 트리는 하나의 기억 공간을 노드(Node)라고 하며, 노드와 노드를 연결하는 선을 링크(Link)라고 한다. 2. 트리 관련 용어노드(Node): 트리의 기본 요소, 데이터와 다른 데이터에 대한 가지(Branch)를 합친 것ex) A, B, C, D, E, F, G, H, I근 노드(Root Node): 트리의 맨 위에 있는 노드, 트리 - 나무, 나무의 뿌리(Root)에서 처음 시작하는 부분의 노드ex) F디그리(Degree, 차수): 각 노드에서 뻗어나온 가지(Branch)의 수, 트리의 디그리는 노드들 중 가장 많은 디그리.. 2021. 3. 3.
[정보처리기사] 디지털 저작권 관리(DRM) 구성 요소와 기술 요소 1. 디지털 저작권 관리(DRM; Digital Right Management) - 저작권자가 배포한 디지털 콘텐츠가 저작권자의 의도한 용도로만 사용되도록 디지털 콘텐츠의 생성, 유통, 이용까지의 전 과정에 걸쳐 사용되는 디지털 콘텐츠 관리 및 보호 기술이다. - 예시로 멜론 사이트에서 음악 스트리밍을 할 때 음악 MP3 파일을 DRM 다운로드하는 게 있었는데 여기서 DRM이 인가된 사용자에게만 파일을 사용할 수 있도록 하는 저작권 관리 시스템이다. DRM 다운로드 한 MP3 파일은 해당 기기, 해당 사용자에 한해서 사용이 가능하고 타인에게 공유가 불가능하거나 공유 시 사용자 인증이 제대로 안 되는 것을 감지해 MP3 파일이 정상 작동하지 않는다. 2. 디지털 저작권 관리(DRM) 구성 요소, 흐름도 클.. 2021. 3. 3.
[정보처리기사] 인터페이스 구현 검증 도구 종류 1. 인터페이스 구현 검증 도구 - 인터페이스 동작 상태를 확인하기 위해서 인터페이스 단위 기능과 시나리오 등을 기반으로 하는 통합 테스트가 필요하다. 그리고 통합 테스트는 테스트 자동화 도구를 이용하면 효율적으로 수행할 수 있는데 그 도구가 인터페이스 구현 검증 도구를 말한다. 2. 인터페이스 구현 검증 도구 종류 - xUnit, STAF, FitNesse, NTAF, Selenium, watir 도구 기능 xUnit Java(Junit), C++(Cppunit), .Net(Nunit)와 같이 다양한 언어를 지원하는 단위 테스트 프레임워크 STAF - 서비스 호출 및 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크 - 테스트 대상 분산 환경에 데몬을 사용 FitNesse 웹 기반 테스트케이.. 2021. 3. 3.
[정보처리기사] 소스코드 품질분석도구 정적 동적 1. 소스코드 품질분석 도구 - 소스코드 품질분석 도구는 소스 코드의 코딩 스타일, 코드에 설정된 코딩 표준, 코드의 복잡도, 코드에 존재하는 메모리 누수 현상, 스레드 결함 등을 발견하기 위해 사용하는 분석 도구로, 정적 분석도구와 동적 분석도구로 구분한다. 2. 정적 분석도구 - pmd, cppcheck, SonarQube, checkstyle, ccm, cobertuna 도구 설명 지원환경 pmd 소스 코드에 대한 미사용 변수, 최적화되지 않은 결함을 유발할 수 있는 코드 검사 Linux, Windows cppcheck C/C++ 코드에대한 메모리 누수, 오버플로 분석 Windows SonarQube 중복코드, 복잡도, 코딩설계 등을 분석 Cross-Platform checkstyle - 자바 코드.. 2021. 3. 3.