ISTQB (International Software Testing Qualification Board)

 

국제공인 자격증입니다.

 

https://www.sten.or.kr/bbs/board.php?bo_table=training_notice&wr_id=82

 

교육·컨설팅 > 교육 공지사항 > [교육] 2020년 SW Testing 교육 연간일정 (2020.12.03 공개)

ISTQB CTFL(Foundation Level) 기준으로

 

교육 660,000원

시험 158,400원

 

고용보험 환급 가능 교육 과정입니다. (고용보험 환급 신청하기 복잡합니다...)

 

 

CSTS (Certified Software Test Specialist)

 

한국 TTA에서 주관하고 국가공인자격증입니다. (최근에 바뀜)

 

https://sw.tta.or.kr/service/csts_it.jsp

 

CSTS자격시험 소개

CSTS자격시험 소개 홈 > 시험인증서비스 > 시험인증서비스 소개 > CSTS자격시험 개요 자 격 명 : SW 테스트 전문가(CSTS: Certified Software Test Specialist) 자격종류 : 등록민간자격 (제2013-1321호) 주관기관 : 한국정보통신기술협회(TTA) 자격등급 : 일반(Foundation Level), 고급(Advanced Level) SW 테스트 전문가 자격- 일반등급(Foundation Level) 검정기준 소프

sw.tta.or.kr

CSTS FL(Foundation Level) 기준으로

 

교육 300,000원

시험 50,000원

 

 

 

 

ISTQB가 오래되고 좀 더 인정을 받는 느낌입니다.

 

가격은 CSTS가 가성비가 훨씬 좋고요.

 

둘 다 공부해야하는 내용은 비슷합니다!

SR Latch

SR Flip-flop

D Flip-flop

 

JK Flip-flop

 

T Flip-flop

 

내용은 추후에 추가

'전자공학 > 회로' 카테고리의 다른 글

Boost Convertor 원리 영상  (0) 2018.12.21
아날로그 회로 설계 4  (0) 2018.12.02
PCM과 BMS란??  (0) 2018.11.23
아날로그 회로 설계 3  (0) 2018.11.19
아날로그 회로 설계 2  (0) 2018.11.08

https://www.w3resource.com/java-tutorial/java-class-methods-instance-variables.php

 

객체(Object)

 

실세계에 존재하는것

 

클래스로 생성된 변수(여러개 생성 가능)

 

 

클래스(Class)

 

설계도!

 

객체를 만들기 위한 틀!

 

객체의 특성이나 기능 설명

 

필드 + 메소드

 

 

필드(Field)

 

필드는 클래스의 상태 및 속성, 변수로 표현

 

 

인스턴스(Instance)

 

객체랑 같은 의미로 보면됨

 

인스턴스화 - 객체를 실제 메모리에 할당

 

 

메소드(Method)

 

객체의 기능

 

 

 

UML(Unified Modeling Language) 통합 모델링 언어

 

소프트웨어를 설계할 때 사용하는 표준화된 범용 모델링 언어를 말합니다.

 

객체 지향 소프트웨어 개발 방법론에 특화되어있어 객체지향 모델링 언어라고도 부릅니다.

 

https://ko.wikipedia.org/wiki/%ED%86%B5%ED%95%A9_%EB%AA%A8%EB%8D%B8%EB%A7%81_%EC%96%B8%EC%96%B4

즉, 소프트웨어를 시각화하며 문서화하는 언어죠.

 

건물에 비교하면 설계도라고 보시면 됩니다. 소프트웨어의 설계도

 

소프트웨어가 점점 무겁고 복잡해지면서 개발하기 전에 필수적인 작업이 되고있습니다.

 

다른 개발자가 UML을 통해 해당 소프트웨어를 쉽게 이해할 수 있습니다.

 

다만 UML은 모델링 언어고 개발방법론도 아니고 프로그래밍언어도 아닙니다.

 

구성요소

 

Things

 

Class, Usecase, Component, Node, State Machine..

 

Relationship

 

Dependency, Association, Generalization, Realization

 

Diagram

 

Things+ Relationships

 

 

 

다이어그램 (종류가 많지만 보통 9가지로 봅니다.)

 

 

클래스 다이어그램(Class Diagram)

https://medium.com/@smagid_allThings/uml-class-diagrams-tutorial-step-by-step-520fd83b300b

클래스와 관계 정의, 정적인 관점

 

시퀀스 다이어그램(Sequence Diagram)

https://en.wikipedia.org/wiki/Sequence_diagram

객체간의 동적 상호 작용 정의, 동적인 관점

 

유스 케이스 다이어그램(Usecase Diagram)

https://en.wikipedia.org/wiki/Use_case_diagram

사용자 관점에서 정의, 인수 테스트 기준

 

Collaboration Diagram(Communication, Interaction 다 같은 다이어그램)

https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-uml-collaboration-diagram/

Sequence Diagram과 같으며 구조적인 측면을 좀 더 중시, 동적인 관점

 

상태 다이어그램(StateChart Diagram)

https://medium.com/@warren2lynch/state-diagram-comprehensive-guide-with-examples-e08b6d1c70fe

상태를 정의

 

액티비티 다이어그램(Activity Diagram)

https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-activity-diagram/

일의 처리를 정의(프로세스 같은거), 동적인 관점

 

컴포넌트 다이어그램(Component Diagram)

https://creately.com/blog/diagrams/component-diagram-tutorial/

컴포넌트(시스템의 기능)의 구성 정의, 정적인 관점

 

배포 다이어그램(Deployment Diagram)

https://creately.com/blog/diagrams/deployment-diagram-tutorial/

컴퓨터를 기반으로 하는 시스템의 물리적 구조 정의

 

객체 다이어그램(Object Diagram)

https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-object-diagram/

객체간의 관계 표현

 

 

 

복합 구조 다이어그램(Composite Structure Diagram), 패키지 다이어그램(Package Diagram) 

타이밍 다이어그램(Timing Diagram), 인터액션 오버뷰 다이어그램(Interation Overview Diagram)

통신 다이어그램(Communication Diagram), 교류 개요 다이어그램

 

이런 다이어그램도 있습니다.

 

 

 

 

 

 

객체지향 분석의 방법론

 

Booch(부치) 방법론 : 설계 중심 방법론, 미시적 개발, 거시적 개발 프로세스를 모두 사용하는 방법론

 

Jacobson(야콥슨) 방법론 : Usecase를 강조하여 사용하는 방법론, 큰 프로젝트에서 효율적

 

Rumbaugh(럼바우) 방법론 : 가장 일반적인 방법론, 객체 모델, 동적 모델, 기능 모델로 나누어 수행

 

Coad와 Yourdon 방법론 : E-R 다이어그램을 사용

 

Wirfs-Brock 방법론 : 고객 명세서 평가

 

부트로더

 

부트로더란 운영체제가 시동되기 이전에 미리 실행되면서 커널이 올바르게 시동되기 위해 필요한 모든 관련 작업을 마무리하고 최종적으로 운영체제를 시동시키기 위한 목적을 가진 프로그램을 말함 - 위키백과

 

여기서 말하는 필요한 작업들은 하드웨어를 초기화하고 커널을 압축 해제 후 메모리에 적재, 

제어를 OS에 넘기는 과정을 수행 등을 말합니다.

여기서 1차 부트로더, 2차 부트로더가 있는 이유는

 

용량의 문제입니다. 부트로더가 점점 용량이 커지는 까닭에 1차 부트로더가 2차 부트로더를 로드하고

 

다시 2차 부트로더가 커널을 로드하는 방식입니다.

 

여기서 1차 부트로더인 MBR(Master Boot Record)은 디스크의 첫번째 섹터(512바이트)에 위치합니다. 

 

1차 부트로더 : MBR, PBR(partition boot record - 멀티부팅 시 이용)

2차 부트로더 : GRUB(리눅스, 윈도우), SYSLINUX(리눅스), LILO(리눅스), BOOTMGR(윈도우), NTLDR(윈도우)

 

 

 

'전자공학 > 임베디드' 카테고리의 다른 글

크로스컴파일 과정  (0) 2020.04.28
JTAG란?  (0) 2019.12.25
Startup code 스타트업 코드  (0) 2019.10.27
툴체인(Toolchain)이란?  (0) 2019.10.26
모놀리식 커널(Monolithic kernel), 마이크로 커널(Micro kernel)  (0) 2019.10.26

Startup Code

 

부팅 과정 중 첫번째에 실행되는 코드, 말그대로 시작할 때 필요한 사항을 적은 코드입니다.

 

main함수가 불리기 전에 실행되죠.

 

파일명이 startup.s 입니다. 파일명.c는 어셈블리어로 프로그래밍된 파일입니다. 

 

C언어가 아니라 어셈블리어로 프로그래밍하는 이유는 C코드로 프로그래밍하기 위해서는

 

스택 메모리 할당이 전제가 되어야하기 때문입니다.

 

스타트업 코드는 보통 다음과 같은 절차를 구성합니다.

 

1. Disable all interrupts

2. Copy any initialized data from ROM to RAM.

3. Zero the uninitialized data area.

4. Allocate space for and initialize the stack.

5. Initialize the processor's stack pointer.

6. Create and initialize the heap.

7. Execute the constructors and initializers for all global variables

8. Enable interrupts.

9. Call main.

 

 

스타트업 코드 깔끔한 설명

 

Startup Code - Programming Embedded Systems in C and C++

If the same symbol is declared in more than one object file, the linker is unable to proceed. It will likely appeal to the programmer — by displaying an error message — and exit. However, if a symbol reference instead remains unresolved after all of the ob

www.e-reading.life

 

임베디드 책 추천

 

Programming Embedded Systems

If you have programming experience and a familiarity with C--the dominant language in embedded systems--Programming Embedded Systems, Second Edition is exactly what you need to get started with embedded software. This software is ubiquitous, hidden away in

books.google.co.kr

 

'전자공학 > 임베디드' 카테고리의 다른 글

JTAG란?  (0) 2019.12.25
부트로더(Boot loader)란?  (0) 2019.10.28
툴체인(Toolchain)이란?  (0) 2019.10.26
모놀리식 커널(Monolithic kernel), 마이크로 커널(Micro kernel)  (0) 2019.10.26
ELF파일이란? (+HEX파일)  (0) 2019.10.25

https://www.geeksforgeeks.org/encapsulation-in-java/

캡슐화

 

이터와 데이터를 조작하는 연산을 하나로 묶는 것을 의미

 

다른말로 번들링(Bundling)이라고도 합니다.

 

인터페이스 간결, 추상화, 모듈화 향상, 내부 데이터의 보호, 모듈 독립성 향상의 효과가 있습니다.

 

기존에도 C언어에서 구조체나 공용체를 통해서 캡슐화를 시도했지만

 

객체지향 언어가 등장하면서 캡슐화가 완벽하게 지원됩니다.

 

 

추상화란?

 

복잡한 문제를 다루기 위해서 불필요한 부분들을 숨기고 중요한 부분만을 표현하는 것

 

또는 구체적인 사실들을 일반화시켜 기술한 것

 

공용체란?

 

구조체와 같이 여러 자료형을 멤버로 가지고 있지만

 

여러 멤버들이 메모리 공간을 공유하며 사용합니다.

 

가장 사이즈가 큰 멤버의 사이즈로 메모리를 할당하고 모든 멤버들이 해당 메모리 공간을 공유하며 사용합니다.

 

 

정보은닉

 

객체에 대한 구체적인 정보를 노출시키지 않도록하는 기법, 외부에서의 접근을 막는 기법

 

목적은 객체간의 결합도를 약화시켜 교체나 변경이 쉽도록 하는 것입니다.

 

객체지향 언어에서 추구하는 유연성(교체, 변경)을 정보은닉을 통해서 얻을 수 있습니다.

 

public : 외부에서 접근 가능

private : 외부에서 접근 불가

default : 동일 패키지로 묶인 클ㄹ스 내에서만 접근 가능

 

 

정리하자면 캡슐화는 데이터와 함수를 묶어주는 기법이고 정보은닉은 캡슐 속에 있는 데이터와 함수를

 

외부에 노출시키지 않는 기법입니다.

 

 

 

정보은닉, 캡슐화 추천 블로그

 

객체지향의 올바른 이해 : 5. 정보 은닉(information hiding)

우리가 어떻게 해서 유연성을 확보할 수 있었는가? 그것은 추상화(Abstraction)에서부터 시작되었다. 추상화를 통해 우리는 여러 요구사항들 중에서 공통점을 찾고, 이 공통점에서 목표한 것과 관련 없는 것들을..

effectiveprogramming.tistory.com

 

 

Information Hiding

소프트웨어 설계 시에 고려해야 할 기본 원리 중 가장 중요한 원리가 무엇이냐고 물어 본다면 주저 없이 ‘정보 은닉(Information Hiding)’이라고 대답할 것이다. 정보 은닉(또는 정보 은폐라고도 한다)은 1972년 Davis Parnas가 발표한 “On the Criteria To Be Used in Decomposing Systems Into

egloos.zum.com

 

툴체인

 

컴퓨터 프로그램을 제작하기 위해 필요한 개발도구 모음을 뜻합니다.

 

여기에 포함된 개발도구들은 연쇄적으로 사용됩니다.

 

연쇄적이란 어느 한 개발도구의 출력이 다른 개발도구의 입력이 된다는 뜻입니다.

 

간단한 툴체인은 소스 코드 편집을 위한 문서 편집기와 소스 코드를 실행 프로그램으로 변환하는 컴파일러와 링커, 운영체제의 기능을 제공하는 라이브러리로 구성됩니다.

 

여기까지 위키의 설명이었습니다.

 

툴체인은 크로스컴파일러를 보면 많이 나오는 용어입니다.

 

크로스컴파일러(Cross Compiler)

크로스컴파일러란? 컴파일러가 실행되는 플랫폼이 아닌 다른 플랫폼에서 실행 가능한 코드를 생성할 수 있는 컴파일러입니다. ex) 운영체제를 지원하지 않는 마이크로컨트롤러와 같이 컴파일이 실현 불가능한 플..

kkhipp.tistory.com

크로스컴파일러는 호스트 시스템에서 타겟 시스템을 위한 실행 가능한 코드를 생성해주는 컴파일러죠.

 

여기서 툴체인은 타겟 시스템에서 실행할 프로그램 개발을 위한 호스트 시스템의 소프트웨어, 개발환경을 통칭합니다.

 

여기서 프로그램 개발이라 하면 소스 코드를 컴파일하고 링킹하는 등 실행 가능한 파일을 생성하는 과정을 말합니다.

 

툴체인의 기본적인 구성입니다.

Compiler(gcc)

Debugger(gdb)

Library(glibc)

Util(binutils - gcc를 위한 어셈블러(as), 링커(ld), 라이브러리 관련 파일 모음)

 

 

 

 

 arm-linux-gcc 가 대표적인 툴체인 입니다.

https://ko.wikipedia.org/wiki/%EB%AA%A8%EB%86%80%EB%A6%AC%EC%8B%9D_%EC%BB%A4%EB%84%90

 

모놀리식 커널

 

입출력 기능, 네트워크 기능, 장치 지원 등 운영체제의 일반적인 기능을 커널과 동일한 메모리 공간에

적재, 실행하는 기법을 말한다. 단일성 커널이라고도 부른다. (위키)

 

쉽게 말해, 커널이 모든 기능을 포함하고 있는 커널 아키텍처

 

장점은 각 기능 간에 커뮤니케이션이 좋습니다. 그리고 시스템 호출에 의한 서비스가 빠릅니다.

 

단점은 새로운 디바이스를 추가하거나 기능 변경시 커널을 재빌드해야합니다.

 

각 가능 간에 효율성이 좋지만 같은 메모리 상에서 실행되어 한 기능이 문제가 생기면

 

시스템 전체에 영향을 줄 수 있습니다.

 

ex) UNIX, LINUX

 

 

 

마이크로 커널

 

OS를 구성하는 몇개의 요소, 기능을 커널 고간으로부터 떼어내어, 외부 모듈화 하는 등으로 추가하는 기법

 

쉽게 말해, 커널에 핵심적인 기능(스케줄링, 메모리 관리 등)만을 포함하고

 

적용 분야나 시스템에 따라 필요한 기능을 추가하는 방식의 아키텍처

 

예를 들면 위의 그림과 같이 디바이스 드라이버, 파일 시스템이 유저 모드에 들어갑니다.

 

커널의 크기가 작으므로 임베디드 시스템에 사용하기 용이합니다.

 

장점은 리얼 타임성 시스템에 강합니다.

 

ex) MacOS X, Windows NT

 

 

모놀리식 커널이 부품 수나 결선이 적어 경제성이 높으면 동시에 고장이 적어 신뢰성이 높다.

 

그 때문에 널리 사용되는 IC는 대부분 모놀리식이다. (컴퓨터인터넷IT용어대사전)

 

 

 

임베디드 좋은 사이트 추천

 

http://recipes.egloos.com/

 

임베디드 레시피

친절한 임베디드 개발자되기 강좌

recipes.egloos.com

https://selfish-developer.com/category/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B3%B5%EB%B6%80/%EB%A6%AC%EB%88%85%EC%8A%A4

 

'컴퓨터공부/리눅스' 카테고리의 글 목록

쉽고 간단한 단어와 문장으로 개발을 설명해보고자 합니다

selfish-developer.com

 

ELF(Executable and Linkable Format)

 

https://ko.wikipedia.org/wiki/ELF_%ED%8C%8C%EC%9D%BC_%ED%98%95%EC%8B%9D

리눅스, 유닉스 시스템의 표준 바이너리 파일 형식, 오브젝트 파일 형식(파일명.o)

 

윈도우 시스템에서는 PE파일 형식이 ELF파일 형식입니다.

 

결국에 링커를 거쳐서 나온 실행파일로 보시면 됩니다.

 

ELF파일은 ELF헤더와 파일 데이터로 이루어집니다.

 

HEX파일(intel)은 ELF로부터 생성되는 플래쉬 메모리에 다운로드되는 16진수로 인코딩된 파일입니다.

 

마이크로프로세서용의 오브젝트파일을 ASCII포맷의 파일로 인코딩한 파일이죠.

 

포럼을 보면

 

source -> compile -> ELF -> link -> hex -> Flash programmer -> Targer board

 

라고 설명도 해놨더라고요.

 

위에 내용으론 Link 다음이 ELF가 맞는건데 아직 뭐가 정답인줄 모르겠네요

 

HEX파일은 많이 다뤄봤는데 ELF는 이제 막 알게되어서 더 접해보고

 

아무튼 추후에 업데이트하겠습니다.

 

  

 

 

 

 

 

+ Recent posts