본문 바로가기
  • 실행력이 모든걸 결정한다
반응형

IT 상식/CS7

[CS] 소프트웨어 공학 요약 1. 소프트웨어 개발 절차 계획 -> 분석 -> 설계 -> 코딩 -> 테스트 및 통합 -> 유지보수 2. 소프트웨어 개발 방법론 - 폭포수 모형 : 소프트웨어 개발 과정의 한 단계가 끝나야만 다음 단계로 넘어가는 개발 방법론 - 나선형 모형 : 점진적으로 개발 과정을 반복하면 개발 방법론 - 프로토타입 모형 : 사용자와 시스템 사이의 인터페이스에 중점을 두어 견본품을 만드는 방법론 - 애자일 모형 : 고객, 협업, 변화 대응에 가치를 두는 개발 방법론 ※ 애자일 모형의 기반이 되는 기법들로는 팀이 중심이 되는 스크럼 기법과 고객의 참여와 개발 과정의 반복을 극대화하는 XP(Extreme Programming) 기법이 있다. - 테일러링 : 내/외부적 요인들로 인해 개발 방법론의 절차나 기법을 수정 및 보.. 2022. 12. 1.
[CS] 자료구조 요약 1. 자료 구조란? - 데이터를 저장하거나 조직하는 방법 - 데이터의 집합과 데이터 간의 관계 2. 복잡도 1) 시간 복잡도 빅오 표기법 - 입력 데이터에 대한 최악의 실행 시간을 표시한다. ※ 실행 시간이 너무 커지는 경우까지 대비해야 한다. - 코드의 효율성을 따질 때 유용하게 쓰인다. 2) 공간 복잡도 - 필요한 자원 공간의 양을 의미한다. - 정적, 동적으로 생성된 공간 모두를 포함하여 계산한다. 3. 선형 자료 구조 - 일렬로 나열되어 있는 자료 구조 1) 연결 리스트 - 데이터를 감싼 노드들을 포인터로 연결하는 구조 - 장점 : 인덱스 없이 노드들끼리 연결만 되어 있기 때문에 삽입과 삭제가 빠르다. - 단점 : 탐색은 데이터를 저장한 순서대로 하기 때문에 느리다. 2) 배열 - 타입이 같은 데.. 2022. 11. 26.
[CS] 데이터베이스 요약 1. 데이터베이스 기초 1) 데이터베이스와 DBMS - 데이터베이스 : 운영 데이터의 저장소 - DBMS : 데이터베이스를 관리(무결성 및 보안 유지)하는 시스템 - 예) MySQL, Oracle, MSSQL, MariaDB - SQL(Structured Query Language) : DBMS의 데이터에 접근하기 위한 언어 - 일반적으로 응용프로그램에서 DBMS를 통해 데이터베이스의 데이터에 접근한다. 2) Entity - 하나 이상의 속성을 가진 개체 - 약한 엔티티 : 혼자서는 존재하지 못하고 다른 엔티티에 포함되는 엔티티 - 강한 엔티티 : 다른 엔티티를 포함하는 엔티티 3) Relation - 데이터베이스에서 정보를 구분하여 저장하는 기본 단위 - 관계형 데이터베이스에서는 테이블이라고 부르고, .. 2022. 11. 20.
[CS] 운영체제 요약 1. 운영체제의 개념 1) 운영체제란? - 사용자가 컴퓨터를 쉽게 다룰 수 있는 환경을 제공해주고 시스템 자원들을 효율적으로 관리해주는 소프트웨어 - 유사한 개념으로 펌웨어가 있다. 펌웨어는 특정 하드웨어 장치에 포함되어 하드웨어의 제어와 구동을 담당하는 일종의 운영체제로, 소프트웨어를 추가로 설치할 수 없다는 특징이 있다. 2) 운영체제의 역할 편리한 User Interface(GUI, CUI) 제공 효율적인 HW, SW 자원 관리 프로세스 관리(스케쥴링)와 쓰레드 관리 시스템 보호 ※ GUI(Grapic User Interface) : 그래픽을 통해 작업 ※ CLI(Command Line Interface) : 명령어를 통해 작업 3) 운영체제의 구조 깊은 순서대로 [하드웨어 -> 드라이버 -> Ke.. 2022. 11. 10.
[CS] 네트워크 요약 1. 네트워크의 개념 - 네트워크는 통신 분야의 개념으로 노드(네트워크 장치)와 링크(선로)로 구성되는 전송 매체다. 1) 처리량과 지연 시간 - 처리량 : 단위 시간당 전달되는 데이터양으로 bps 단위를 사용함 - 대역폭 : 특정 기능을 수행할 수 있는 주파수의 범위 - 지연시간 : 요청이 처리되는 왕복 시간 2) 토폴로지 - 네트워크의 노드와 링크가 배치되어 있는 방식 (1) 트리 - 계층형 토폴로지라고도 함 - 노드의 추가와 삭제가 쉬움 (2) 버스 - 중앙 회선 하나에 여러 노드가 연결되어 있는 구조 - 주로 LAN(근거리 통신망)에 사용됨 - 노드의 추가와 삭제가 쉬우며, 설치 비용이 적고 신뢰성이 우수함 - 스푸핑의 위험이 있음. 스푸핑은 악의적인 노드에 패킷이 오도록 하는 공격을 뜻함 (3).. 2022. 11. 6.
[CS] 디자인 패턴과 프로그래밍 체계 요약 1. 디자인 패턴 - 디자인 패턴 : 객체 간의 상호 관계에 대한 규약 1) 싱글톤 패턴 - 하나의 클래스에 하나의 인스턴스만 가지는 패턴 - 장점 : 인스턴스 생성 비용이 줄어듦 - 단점 : 의존성은 높아지고 독립적인 테스트가 어려워짐 ※ 의존 : 다른 오브젝트의 변경 사항에 대해 다른 오브젝트도 같이 변하는 경우 ※ 의존성 주입(DI) : 추상화 계층을 통해 모듈을 쉽게 교체할 수 있도록 만드는 것 - DB 연결 모듈에 많이 사용됨 2) 팩토리 패턴 - 객체를 생성하는 부분을 분리하여 추상화하는 패턴 - 하위 클래스에서 객체 생성 방법을 결정함 3) 전략 패턴 - 전략이라고 부르는 알고리즘을 추상화한 패턴 4) 옵저버 패턴 - 특정 객체에 상태 변화가 생길 때마다 옵저버들에게 변화를 알려주는 패턴 -.. 2022. 11. 1.
[CS] 면접 기타 예상 질문 구조체와 클래스의 차이 구조체는 값 타입으로, 스택 영역에 할당됨 클래스는 참조 타입으로, 힙 영역에 할당됨 단, 구조체로 선언을 했어도 객체를 힙 영역에 메모리를 할당할 때가 있음 모든 필드의 합이 16byte를 넘는 경우 구조체안에 클래스 타입을 필드로 가질 경우 정보 출처 : https://hijuworld.tistory.com/43 HTML5 수많은 플러그인들로 인한 부작용을 막기 위해 개발된 HTML버전 멀티미디어 직접 재생 가능 서버와의 통신 가능 시멘틱 태그로 검색 엔진의 검색 능력을 극대화 가능 W3C 웹 표준 개발 기구 ※ 웹 표준 : 모든 브라우저에서 웹 서비스가 정상적으로 보여질 수 있도록 하는 표준 멤버변수, 지역변수는 언제 메모리에서 해제되나? 멤버 변수, heap은 사용자 혹은 .. 2021. 6. 11.