3. 프로그래밍 언어 활용
1. 구조적 프로그래밍 언어 활용하기
145p ✍️ 구조적 프로그래밍
: 절차적 프로그래밍 기반 아래 만들어진 프로그래밍 기법으로 프로그램을 결합하는 순차, 분기, 반복 구조를 통하여 설계됨
(1) 순차구조 - 코드가 위에서 아래로 일직선으로만 실해오디는 구조
(2) 선택구조 - 주어진 조건 만족 여부에 따라 처리 대상과 순서를 전달하는 구조로 어떤 것을 선택하느냐에 따라 실행 순서가 달라지며 조건문(if, if-else)를 이용하여 실행함. 특정 조건이 들어와 참이냐 거짓이냐에 따라 처리가 분기되는 구조
(3) 반복구조 - 조건이 만족할 때까지 동작을 반복하는 구조로 반복문(while, for)을 사용하여 실행함. 참인 조건이 될 때까지 진행되는 구조
153p ✍️ 자료 사전 (Data Dictionary)
: 흐름도에 등장한 데이터에 관한 정보를 한곳에 모아놓는 저장소로 개발자나 사용자, 즉 이해관계자들이 편리하게 사용할 수 있게 해준다.
155p ✍️ 조건문
(1) if문
if(조건문)
문장 1;
문장2;
if 조건문에 따라 문장을 분기하며 조건문의 결과는 참(true, 1) 또는 거짓(false, 0)이 나온다. 참이면 문장 1을 수행한 후에 문장2를 수행하고, 거짓이면 문장 1을 수행하지 않고 바로 문장 2를 수행함.
(2) if~else문
main() {
int a = 5;
if(a > 3) // if (참)
printf("A"); // 조건문이 참이면 실행
else
printf("B"); // 조건문이 거짓이면 실행
printf("C");
if(a > 8) printf("D"); // 조건문이 참이면 실행
else printf("E"); // 조건문이 거짓이면 실행
printf("F");
}
다중의 조건을 체크하기 위해 if~else문을 이용할 수 있음. 조건문이 참이면 A를 출력하고, 그렇지 않으면 B를 출력하는 조건문을 만들 수 있음.
(3) switch문
switch (수식 또는 변수) {
case 값 :
A;
case 값 :
B;
case 값 :
C;
default :
D;
}
switch 구문 옆에 있는 수식 또는 변수의 결과는 반드시 -1, 0, 1, 2 같은 정수값이어야 함. 수식 또는 변수의 결과인 정수값이 나오면 그 값에 해당하는 case 값을 찾아 해당하는 명령어를 수행하고 switch 구문을 종료함. 만약 수식 또는 변수의 결과에 해당하는 정수값을 갖는 case 구문이 없을 때는 default 구문을 수행하고 switch 구문을 종료함. default 구문은 프로그래밍을 해도 되고 하지 않아도 되지만 만약 case 값 중에 수식 또는 변수 결과의 정수값이 없고 default 구문도 없다면 전체 case 조건문에서는 어떠한 구문도 수행하지 않고 종료하게 됨.
157p ✍️ 반복문
(1) for 반복문
for (A; B; C)
A : 초깂값
B : 반복 조건식
C : 증가 또는 감소
하나 이상의 수행하고자 하는 문장 또는 명령어를 정해진 횟수만큼 반복적으로 수행하는 것. A 항목은 반복하고자 하는 횟수의 초깃값을 의미함. 초깃값은 말 그대로 처음에 한 번 지정하는 값으로 반복문을 수행하는 동안 C 항목(증가식 또는 감소식)에 따라 변함
(2) while 반복문
for 반복문 | while반복문 |
---|---|
for (i = 1; i < 11; i++) 문장; | while (i <11) 문장; |
for 반복문과 마찬가지로 반복적으로 일을 수행하고자 할 때 사용. for 반복문과 while 반복문은 수행하는 일은 같지만 for 반복문은 "10번 반복하세요" 같은 형태이고, while 반복문은 "10이 될 때까지 반복하세요" 같은 형태로 구분 할 수 있음
(3) do-while 반복문
while과 같이 반복적으로 일을 수행할 때 사용하는 반복문. 반복적으로 수행하는 문장 및 문장들을 최소 한 번은 수행하고, 그 이후에 반복문 조건을 검사하여 참일 때만 반복적으로 수행한다는 점에서 while 반복문과 다름.
159p ✍️ 응집도
: 모듈 내부 요소들이 서로 연관되어 있는 정도로 응집도가 강할수록 품질이 높고 약할수록 품질이 낮으며 기능적, 순차적, 교환적, 절차적, 시간적, 논리적, 우연적 응집도가 있음.
2. 객체지향 프로그래밍 언어 활용하기
166p ✍️ 객체지향 속성
(1) 캡슐화 - 객체의 속성과 행위를 하나로 묶고, 실제 구현 내용 일부를 외부에 감추어 은닉하는 기법
(2) 추상화 - 어떤 실체로부터 공통적인 부분이나 관심 있는 특성들만 하나로 모은 것
(3) 다형성
3-1. 오버로딩 - 함수 이름은 같으나 함수의 매개 변수 숫자, 타입 등을 다르게 해서 사용하는 기법
3-2. 오버라이딩 - 상위 클래스의 메소드를 하위 클래스에서 똑같은 이름으로 재정의하는 것
(4) 정보 은닉 - 캡슐화 정보들을 밖에서 접근 불가능하도록 하는 것 (private)
(5) 상속성 - 부모 클래스에서 새로운 기능을 추가해 자식 클래스를 만들어 사용하는 기법
178p ✍️ 객체지향 프로그래밍 언어 구성요소
(1) 클래스 - 같은 종류의 집단에 속하는 속성(멤버변수)과 행위(메소드)를 정의한 것으로 객체지향 프로그램의 기본적인 사용자 정의 데이터형
(2) 객체 - 클래스의 인스턴스(Instance)로 자신 고유의 데이터를 가지며 클래스에서 정의한 행위를 수행할 수 있음.
(3) 메소드 - 클래스로부터 생성된 객체를 사용하는 방법으로 특정 기능을 수행하면서, 객체에 명령을 내리는 기능을 가지고 있음.
(4) 속성(멤버변수) - 한 클래스 내에 속한 객체들이 가지고 있는 데이터 값을 단위별로 정의한 것
179p ✍️ 접근 지정자
(1) public - 모든 접근을 허용하는 접근자로 공개적으로 오픈할 때 사용
(2) protected - 자기 자신 클래스 및 상속받은 자식 클래스에서의 접근을 허용
(3) private - 자기 자신 클래스 내부의 메소드만 접근을 허용
(4) default - 접근 지정자를 명시하지 않는 경우로 같은 패키지에서는 모두 접근 가능하지만 다른 패키지일 때는 접근이 불가능함
180p ✍️ 데이터 타입
자료형 -> 원시형 -> Numeric -> Integral -> Floating-point -> float, double
자료형 -> 원시형 -> Numeric -> Integral -> integer -> btye, short, int, long
자료형 -> 원시형 -> Numeric -> Character -> char
자료형 -> 원시형 -> Boolean -> -> -> boolean
자료형 -> 비원시형 -> String(참조형), Array, etc
183, 186p ✍️ 싱글톤 Singleton
: 전역변수를 사용하지 않고 객체를 하나만 생성하여 생성된 객체를 한 번만 어디에서든지 참조할 수 있도록 하는 패턴이며, GoF 디자인 패턴의 분류 중 생성 패턴에 속함.
188p ✍️ 오버라이딩(Overriding) ≠ 오버로딩
: 수퍼클래스(부모)로부터 상속받은 메소드를 다시 정의하는 것, 메소드의 이름과 리턴 타입, 인자 등이 모두 동일해야하며 다를 경우 새로운 메소드가 추가되는 형식
//오버라이딩 구현 예시
class Animal{
void bark() {
System.out.println("bow");
}
}
class Dog extends Animal{
void bark() {
System.out.println("woof");
}
}
class Cat extends Animal{
void bark() {
System.out.println("ultra");
}
}
3. 스크립트 언어 활용하기
192p ✍️ 스크립트 언어 특징
(1) 인터프리터 언어 - 코드를 작성함과 동시에 인터프리터가 기계어로 번역하고 실행함
(2) 단순한 구문 - 타 프로그래밍 언어에 비해 단순한 구문과 의미를 내포함
(3) 컴파일 시간 소요 - 스크립트 언어는 모든 명령어가 기본 명령어 처리기에 의해 직접 처리되지 못하고 다른 프로그램에 의해 전처리가 필요하기 때문에 컴파일된 프로그램보다 실행 시간이 오래 걸림
(4) 신속한 활용 - 빠르게 배우고 작성하기 위해 고안된 언어
193p ✍️ 화면 설계서
(1) 와이어프레임(Wireframe) - 기획 단계에서 페이지 레이아웃이나 화면 이동, 구성요소에 대한 내용을 기술한 문서
(2) 스토리보드(Storyboard) - 와이어프레임의 내용에 디스크립션 등을 포함한 설계 문서
(3) 목업(Mockup) - 설계 단계에서 실제 화면과 같은 형태의 모형
199p ✍️ 스크립트 프로그래밍 언어 유형
(1) JavaScript(자바스크립트) - 표준 HTML 문서 내에 삽입되어 사용되며 인터랙티브한 웹 페이지를 만들 수 있음
(2) jQuery - HTML 문서에 삽입하여 사용할 수 있는 자바스크립트 라이브러리
(3) JSP(JavaServer Pages) - HTML 웹 페이지 클라이언트에 자바 코드를 직접 삽입하여 웹 서버에서 동적으로 웹 페이지를 생성하여 웹 브라우저에서 표현할 수 있도록 전달해주는 스크립트 프로그래밍 언어
(4) PHP(Hypertext Preprocessor) - HTML 문서 안에 포함하여 작동하는 서버 측 스크립트 프로그래밍 언어. 리눅스 운영체제에 아파치 웹 서버를 설치하고 MySQL DB 환경에서 주로 같이 사용
(5) ASP(Active Server Pages) - 마이크로소프트사에서 개발된 윈도우 서버에서 운영할 수 있도록 개발된 스크립트 방식의 웹 프로그래밍 언어
(6) Pyton - 객체지향 스크립트 프로그래밍 언어로 별도의 컴파일 과정이 필요 없이 개발되어 개발 기간이 단축되고, 리눅스나 윈도우 등 특정 플랫폼에 의존적이지 않고 독립적임
(7) VBScript - 미국 마이크로소프트 Visual Basic 기반의 스크립트 프로그래밍 언어