본문 바로가기

IT To do and To was

21년 12월 16일_소프트웨어공학 정리, 시스템프로그래밍 정리, js 기초

728x90
반응형

목요일 [스터디모임_cu..]_API 만들기 수행_fail_추후 기약

 

- 소프트웨어공학수업 (6주 차) end

- 시스템 프로그래밍 (6주 차) end

- 자료구조 (6주 차) 1교시 수강

- 인프런 javascript 102강 중 2강 수강 (10분/829분)

 

 

 

1. 소프트 웨어 공학 수업 수강 [3/3] (어제 2/3 수강)

º 인터페이스의 구현 분리

인터페이스란? 공개된 메소드(함수)의 프로토타입(정보시스템의 미완성 버전 또는 중요한 기능들이 포함되어있는 시스템의 초기 모델)만을 정의해 놓은 것

 

º 단일 책임의 원칙

좋은 설계란 모듈의 응집도를 높이고, 결합도를 낮추는 설계

단일 책임의 원칙은 _클래스 한 가지에 한가지 책임(기능)을 갖도록 설계, _만일 클래스에 두 개의 책임이 존재하면 두개의 클래스로 분리하여 변경

 

º 개방 폐쇄의 원칙

확장(상속)에서는 열려 있어야 하고, 변경에는 닫혀 있어야 한다. -> 추상 클래스와 구체 클래스를 분리해야 함

변경에는 왜 닫혀있어야 하는지 = 특정 하위 클래스가 상위 클래스에 있는 공통의 기본 기능을 변경 및 간섭 금지

 

º 리스코프 교체의 원칙

기반 클래스는 파생 클래스로 대체할 수 있어야 한다. / 파생 클래스(신버전)에서  기반 클래스의 모든 메소드(구버전)를 지원하지 않으면 상속의 기본인 IS-A {포함} 관계가 성립이 안됨

- 인터페이스 분리의 원칙 클라이언트는 자신이 사용하지 않는 메서드와 의존 관계를 맺으면 안 된다.

 

º 의존 관계 역전의 원칙

-클라이언트는 구체 클래스가 아닌 추상 클래스(인터페이스)에 의존해야 한다.

 

º 전통적인 매트릭_(크기, 복잡도, 결합도, 응집도, 정보흐름)

 

º 객체지향 매트릭

복잡도 설계 매트릭 클래스 당 가중 매소드(WMC)

상속 트리의 깊이(DIT)

자식 노드의 개수(NOC)

클래스 사이의 결합(CBO)

클래스의 책임(RFC)

메소드의 응집 결핍(LCOM)

 

2. 시스템 프로그래밍 수강 [3/3]

 

º 스택 프레임 구조와 레지스터

스텍 프레임 구조(함수 내에 선언된 변수)

기존에 선언된 지역변수 접근 불가

SP 레지스터(스택 위치 기억을 위한 CPU 내 SP reg)

함수 호출_변수 증가 시 sp 레지스터 값 증가

함수 종료_선언된 변수 반환     레지스터 증가 값은 자료형에 따라 증감

 

º 함수 호출 인자의 전달 방식

함수 호출 방식 = 입력에 대한 출력 반환 값 존재

프로시저(SQL server에서 제공하는 프로그래밍 기능) 호출 = 입력에 대한 출력 반환값 X

인자의 전달 방식 CPU 제조사 표준에 따라 다름(지역 변수와 같이 스택에 할당)

스택에 저장되는 정보_지역변수, 전달 인자 값, 스택 프레임

 

º PUSH와 POP 명령어

º 메모리 구조와 프로그램 카운터

º  함수 호출과 함수 종료

º  함수 호출 규약

º 멀티 프로세스 기반 프로그램

º 메모리 구조 관점에서 본 프로세스와 쓰레드

º  커널 레벨 쓰레드와 유저 레벨

 

쓰레드 ; 멀티 프로그램 자체의 문제를 최소화하려 하면 저장하고 복원을 최소화, 조합

 

3. 자료구조 수강

º  스택 1

- stack - 쌓아놓은 더미 = 먼저 들어간 곳이 나중에 나감(후입 선출 LIFP: Last-in-First-Out) a.k.a 밑이 막혀있는 항아리

stack top-입출력이 이루어지는 부분 / stack bottom- 바닥 부분 / element- 스택에 저장되는 데이터/ empty stack- 스택에 요소가 없는.

스택 생성_create()::=

비어있는지 검사_is_empty(s)::=

가득 찾는지 검사_is_full(s)::=

push(s, e)::= 스택 맨 위에 요소에 e를 추가 = 올린 다음에 저장( ↑ -> ← )

pop(s)::= 스택의 맨 위에 있는 요소 삭제 = 삭제하고 숫자 하나

peek(s) ::= 스택의 맨 위에 있는 요소를 삭제하지 않고 반환한다.

스택의 용도_입력과 역순의 출력이 필요한 경우에 적합함 ex) 에디터에서 되돌리기(undo) 기능, 함수 호출에서 복귀 주소를 기억할 때(순환)_피보나치수열

배열로 구현한 스택(_int타입 1차원 배열 stack [MAX_STACK_SIZE] 필요)

top변수 : 스택에서 가장 최근에 입력된 자료를 가리키는 변수

stack [0] : 가장 먼저 들어온 요소 / stack [top] : 가장 최근에 들어온 요소 / 공백상태 : top-n

초기화 함수 init() 

TIP : 구조체 포인터가 s인 경우 기존 top을 s-> top으로 변경/ stack배열도 s-> stack로 변경

 

 

 

4. javascript 강의 

 

º  msBox - 구글 스프레드시트가 갖고 있는 기능 中 표시하는 대화상자 // 경고창(alert)은 브라우저가 갖고있는 기능 

º Google Apps Script = 여러 분야에서 사용할 수 있음

º 프로그래밍 언어-> 약속을 익히고, 문법을 익히는 것

º 환경이란? js는 탈 웹브라우저, 탈웹으로 다양한 분야에서 사용되고 있기에 분리해서 사용

언어를 사용하는 대상 _ 웹브라우저(alert), node.js(write), SreadSheet(msgBox)

script 안쪽에 기재

 

tomorrow wish list

 

. 17시 전까지 script 5개 내외 수강

. 자료구조 6주 차 3교시까지 수강

. js consoel use

728x90
반응형