CS
SQL 기본 쿼리문 정리
목차SQL 이란SQL 명령어 분류DDL(데이터 정의어)CREATEALTERDROPTRUNCATEDML (데이터 조작어)INSERTUPDATEDELETESELECTDCL (데이터 제어어)GRANTREVOKESQL이란SQL은 Structured Query Language의 약자로 관계형 데이터 모델을 따르는 DBMS의 표준 데이터베이스 언어입니다.SQL 명령어 분류SQL 명령어는 수행하는 역할에 따라 3가지로 분류가 나누어집니다.DDLData Definition Language데이터베이스나 테이블 등을 생성, 삭제하거나 그 구조를 변경하기 위한 명령어데이터베이스를 정의하거나 수정명령어 수행 시 이전 상태로 복귀 불가DMLData Manipulation Language데이터베이스에 저장된 데이터를 처리하거나 ..
Heap이 Stack에 비해 느릴 수 밖에 없는 이유
Heap이 Stack에 비해 느릴 수 밖에 없는 이유"스택이 힙보다 빠르다" 라는 표현은 모호한 표현입니다.정확한 표현은 "스택에 할당된 변수에 접근하는 것이 힙에 할당된 변수에 접근하는 것보다 빠르다" 입니다.왜냐하면, 스택과 힙 모두 가상 메모리에 불과하기 때문인데요.하드웨어로 내려가면 똑같이 물리 메모리인 RAM 어딘가에 저장되어 있고, 주소를 통해 논리적으로 구분되어 있기 때문에 둘의 속도가 다를 수 없습니다.그렇다면 접근하는 속도가 왜 차이 날까?현재 사용되는 대부분의 CPU는 FP(Frame Pointer)를 두어 함수의 스택 프레임의 시작주소를 저장하고 있습니다.그리고 컴파일러는 컴파일 과정을 통해 함수의 스택 프레임 내에 변수들의 크기와 순서를 알 수 있기 때문에, 어느 위치(offset)..
객체 지향 프로그래밍을 설계할 때는 SOLID 원칙을 지켜야 한다.
목차 SOLID 원칙은 누가 만들었을까? 단일 책임 원칙 SRP Single Responsibility Principle 개방/폐쇄 원칙 OCP Open Closed Principle 리스코프 치환 원칙 LSP Liskov Substituion Principle 인터페이스 분리 원칙 ISP Interface Segregation Principle 의존관계 역전 원칙 DIP Dependency Inversion Principle SOLID는 아직도 유효한가? SOLID 원칙은 누가 만들었을까? 2000년대 초 로버트 마틴이 주장한 객체지향 5원칙을 마이클 페더스가 두문자어 기억술로 소개한 것이라고 한다. 이러한 SOLID 원칙들은 시간이 지나도 유지보수와 확장이 쉬운 시스템을 만들고자 할 때 적용하면 좋은..
[컴퓨터 구조] 시스템 버스(System Bus) 및 동작 방식
목차시스템 버스(System Bus) 란?제어 버스 (Contol Bus)주소 버스 (Address Bus)데이터 버스 (Data Bus)CPU와 기억 장치간의 통신CPU와 I/O 장치간의 통신전체 시스템 구성시스템 버스(System Bus) 란?시스템 버스란 컴퓨터의 구성요소(CPU, 기억장치, I/O장치)간의 Data/신호 교환을 위한 통로입니다.제어 버스 / 주소 버스 / 데이터 버스 라는 하부 버스로 이루어집니다.쉽게 이해하자면 시스템 버스라는 버스 터미널 안에 버스가 지나다니고, 데이터와 신호들이 각 버스를 타고 이동한다고 이해하면 쉽습니다. 제어 버스 (Control Bus)제어 버스는 CPU가 시스템 내의 각종 요소들의 동작을 제어하는데 필요한 신호들을 전달하는 통로입니다.제어 선의 개수는 ..
[소프트웨어 공학] 블랙박스 테스트-1
블랙박스 테스트 명세 기반 테스트(ISO/IEC/IEEE 29119) 명세에 따른 올바른 구현여부 테스트 명세 정보 등을 이용하여 테스트 케이스 설계 요구사항 분석 / 시스템 인터페이스 / UI 명세 원시 코드 정보를 이용하지 않음 사용자 입장에서 테스트 케이스 설계 가능 개발 초기 단계부터 테스트 케이스 설계 가능 단위, 통합, 시스템, 인수 테스트 전 과정에 사용 동일 명세로 구현된 여러 시스템에 재사용 가능 기능 (누락) 오류 / 명세 오류 검출 예시 입력이 1024 이하이면 입력 값, 크면 1 증가 값 반환 // BlackBoxTest.java public class BlackBoxTest { public int bTest(int x) { return x; } } 명세에 따라 1024 이하인 경우..
[소프트웨어 공학] JUnit
JUnit 이란? 자바 프로그램의 단위 테스트 프레임워크 어노테이션으로 쉽고 간결한 테스트 코드 테스트를 위해 코드에 출력문을 삽입할 필요 없음 예시 src/main/java(kr.se) 폴더에서 Calc 클래스 생성 -> File -> New -> Class 선택 package kr.se; public class Calc { //Calc.java private int res=0; public void add(int x, int y) { res=x+y; } public void sub(int x, int y) { res=x-y; } public int getResult( ) { return res; } } src/test/java(kr.se) 폴더에서 CalcTest 클래스 생성 -> Flie -> N..