컴포넌트 개념

  많은 하드웨어 제품들은 각각 독립된 기능을 가진 모듈로 만들어진다.

이 제품들은 회사 상관없이 서로 조합하여 하나의 제품이 만들어진다.

이러한 제품들의 부품은 문제가 발생했을 시,

해당 부품만 다른 부품으로 바꾸어도 제품은 문제없이 작동한다.

컴퓨터와 스마트폰과 같은 제품들을 상상해보면 금방 이해가 갈것이다.

 

 반면에, 소프트웨에 에서는 상황이 틀리다.

소프트웨어를 독립적으로 개발되지 않은 경우가 많을 뿐더러, 독립적으로 개발되어도

다른 모듈과의 호환을 생각하지 않고 개발한다. 

이는 결국 소프트웨어의 재사용을 어렵게 하고 유지보수 비용이 크게 증가하는 원인이 된다.

이러한 상황에서 소프트웨어의 재사용의 중요성 과 필용성을 위해 나온 기술이 컴포넌트 기술이다.

 

컴포넌트는 독립적인 단위모듈이다.

 

  하드웨어처럼 독립적인 기능을 수행하고 추후에 교환될 수 있도록 해야한다.

또한 컴포넌트의 세부사항은 겉으로 드러나선 안되는것 이며, 일부러 끄집어 내려는 시도조차

하지 말아야 한다. 필요한것은 단지 해당 컴포넌트를 쓰기 위해 제공해주는 일종의 '장치'가 필요하다.

예를들어서, 스마트폰의 밧데리 수명이 다했을 경우 밧데리를 새로 구입하여,

스마트폰에서 밧데리만 교체했을 것이다. 이때 스마트폰 단자와 밧데리 단자가 맞물려야 제 기능을

발휘하는데 이때 밧데리 단자가 앞서 말했던 일종의 '장치'가 된다.

 

컴포넌트 개념을 객체지향 언어에 대입

 

  스마트폰과 밧데리가 각각 독립적으로 문제없이 돌아간다고 가정할때, 상호간의 단자만 규격에 맞을시, 

어떠한 밧데리를 교환하더라도 스마트폰은 정상 작동할 것이다.

이와 같이 소프트웨어 에서도 단자와 같은 일종의 장치가 필요하다. 객체지향 언어에서는 이러한 장치를

인터페이스(interface)로 제공해준다. 인터페이스는 사용자에게 해당 소프트웨어를 쓰기위한 

메서드(=장치)를 공개하고, 규격화된 메서드 환경에서 소프트웨어를 개발할 수 있는 환경을 제공해준다.

소프트웨어의 세부내용은 인터페이스를 구현받은 클래스가 작성한다.

이렇게 함으로써 객체지향 개념은 정보은닉개념을 수행할 수 있을 뿐더러,

각각 독립된 모듈로 소프트웨어를 만들수 있도록 크게 이바지 할 수 있다.

 

 

결론적으로, 컴포넌트는 각각 독립된 모듈을 뜻하며, 이는 흔히 JAVA같은 oop 언어등의 class등의

개념과는 다르다. 하나의 컴포넌트는 하나의 클래스로만 작성될 수 도 있지만, 여러개의 클래스로도

작성될 수 있기 때문이다. 컴포넌트 개념을 잘 적용한 소프트웨어란 부품(인터페이스를 구현받은 클래스)

만 바꾸어 주었을시, 오류 없이 잘 작동 되는것 을 의미한다.



출처: https://mommoo.tistory.com/55 [개발자로 홀로 서기]

'용어정리' 카테고리의 다른 글

Xshell  (0) 2021.01.17
jdk, jre  (0) 2021.01.17
간단한 단어 정리  (0) 2020.07.14

 

# Xshell 이란?

텔넷/ SSH 프로토콜로 리눅스 원격 호스트에 접속할 수 있는 윈도우용 터미널 에뮬레이터

국내 기업에서 개발된 프로그램으로 제품 한글화는 물론이고 ssh 접속 시 유니코드(utf-8)지원으로 한글로 설정된 리눅스에도 문제없이 접속 할 수 있다.

 

텔넷? - 인터넷을 통해 원격 호스트 컴퓨터에 접속할 때 지원되는 인터넷 표준 프로토콜(멀리 떨어진 곳 컴퓨터를 마치 자신의 PC를 사용도록 해주는..)

SSH? - Secure Shell Protocol, 컴퓨터와 컴퓨터가 네트워크를 통해 서로 통신할 때 보안적으로 안전하게 통신하기 위해 사용되는 프로토콜

 

인지하기 쉬운 인터페이스에 터미널을 사용하면서 유용할만한 부가적인 기능들이 많이 있어서 putty 대체 프로그램으로도 적합하다. 

 

# xshell 특징

- ssh1,ssh2,telnet,rlogin,serial,ftp,sftp 터미널 연결 지원

- ssh의 다양한 사용자 인증 지원 (public key/ keyboard interactive / gssapi/ pkcs#11)

- 접속 기록을 세션 파일로 저장하영 다중 파일 관리

- xmodem/ymodem/xmodem 지원

- 스크립팅 지원 (javascript/vbscript/python)

- 여러 세션에 동시 문자열 보내기 /global input

- 탈착이 가능한 탭 기반의 인터페이스

- 터널링 및 프록시 기능

- X11 포워딩  (xmanager 사용 시) 기능

- 커미널 키 매핑/ 프로그램 키 매핑 기능 

- 터미널 하이라이트 (특정 키워드에서 서식 적용)

 

      • 시큐어 셸(Secure Shell, SSH)은 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해 주는 응용 프로그램 또는 그 프로토콜을 가리킨다.
      • 기존의 rsh, rlogin, 텔넷 등을 대체하기 위해 설계되었으며, 강력한 인증 방법 및 안젂하지 못한 네트워크에서 안젂하게 통신을 할 수 있는 기능을 제공한다. 기본적으로는 22번 포트를 사용.

 

 

출처: https://coding-sojin2.tistory.com/entry/Xshell-%EC%9D%B4%EB%9E%80

 

Xshell 이란?

# Xshell 이란? 텔넷/ SSH 프로토콜로 리눅스 원격 호스트에 접속할 수 있는 윈도우용 터미널 에뮬레이터 국내 기업에서 개발된 프로그램으로 제품 한글화는 물론이고 ssh 접속 시 유니코드(utf-8)지

coding-sojin2.tistory.com

 

 

'용어정리' 카테고리의 다른 글

컴포넌트(Component)  (0) 2021.02.01
jdk, jre  (0) 2021.01.17
간단한 단어 정리  (0) 2020.07.14

JRE란?
먼저 JRE는 Java Runtime Environment의 약자로 자바 프로그램을 실행시켜주는 환경을 구성해주는 도구다. 즉 JAVA를 개발할 필요는 없는데, 실행은 시켜줘야 하는 경우에는 꼭 JRE가 있어야 한다. 반면 JAVA 개발시 꼭 필요한 것이 있는데 그것이 바로 JDK다.

JDK란?
JDK는 Java Development Kit의 약자로 말그대로 자바 개발시 필요한 툴킷을 제공하는 도구모음이다. 개발하려면 당연히 실행도 시켜야 하므로 JDK 안에는 JRE가 포함되어 있다. 



사용자 입장에서 요약하자면 
JAVA로 만들어진 프로그램을 실행만 시킬 것이라면  JRE만 설치하면 되고
JAVA 개발자라면 JDK를 설치하면 된다.

'용어정리' 카테고리의 다른 글

컴포넌트(Component)  (0) 2021.02.01
Xshell  (0) 2021.01.17
간단한 단어 정리  (0) 2020.07.14

1) 컴파일 언어와 인터프리터 언어의 다른 점
* 목적 파일을 생성 하냐 안하냐.
    -인터프리터 언어는 : 목적파일을 생성하지 않는다.
    - 인간이 작성한 코드를 '실행'시 로딩 시작.

* 속도의 차이가 있음 

   -컴파일 언어는 빌드 과정에서 기계어로 변환 후에 실행하기 때문에 인터프리터 언어보다 느리며

   -런타임 상황에서는 인터프리터 언어가 한 줄씩 읽어 실행해서 컴파일 언어보다 느림


2) 정적 타입 언어와 동적 타입 언어
* 변수의 데이터 타입을 명시적으로 지정하냐 안 하냐 차이.

   -정적언어는 자료형을 컴파일시에 결정하고 동적언어는 실행시에 결정함 

   -그래서 정적언어는 속도와 타입에 안정성이 있고 동적언어는 타입의 선택의 여지가 있지만 Error의 위험이 있다.


3) 변수의 자료형에서 기본형과 참조형의 다른 점
기본형 : 원시 값. (int float long short double 원시값.
참조형 : 그 외 데이터 타입
 - 객체의 멤버(원시값이나 다른 참조형)들을 지정한 메모리 주소 가리킴.


4) http vs. https
공통점 : 웹서비스에서 쓰이는 application 계층의 프로토콜.
1차이점 : http - 주로 80번 포트, https - 주로 443번 포트
2차이점 : 암호화처리, CA인증서 필요.(https)
CA인증서를 어디서 만드느냐에 따라
웹브라우저 자물쇠 아이콘이 '빨갛게' 될 수도 있다
공개키 암호화 방식.


5) information, data, database, dbms의 개념
information : data의 조합과 연산 결과를 통계 처리한 뒤 보이는 정보(의사결정에 필요)
data : 자연 상태, 시스템에서 생성되고 분류된 값.
database : data를 기억장치에 저장, 사용자의 요구에 따라 조합하여 조회하기 위한 시스템의 개념.
dbms : database를 관계형 구조에 따라 s/w로 구현한 시스템.


6) mvc
클라이언트 <-> (웹서버<->) 웹어플리케이션 서버 - dbms로 이루어진 웹 시스템 구현을 위해 쓰이는 개념.
* 역할 구분
c(controller) : 클라이언트가 요청한 url 내용을 받아들여 model객체에 전달.
m(model) : 웹 애플리케이션에서 dbms와 통신. dbms객체 구조 정의
v(view) : WAS에서 클라이언트(end user)에게 송신할 데이터를 정의.


7) HttpMethod
GET : 데이터를 가져오고 싶다.
POST : client에서 보내주는 데이터를 삽입하고 싶다.
PUT : 지정한 '자원'을 첨부한 데이터의 값으로 수정하고 싶다.
DELETE : 요청한 자료를 삭제하고 싶다.
OPTIONS
 - 서버에서 지원하는 httpmethod 목록을 알고 싶다.
 - CORS 이슈로 인해 클라이언트의 브라우저에서 실제 request를 날리기 전에 호출한다(preflight)
 - CORS : 도메인이 다른 서버의 자원을 요청할 경우 default로 응답을 막는다.


8) Unix 계열 OS에서 사용하는 아래 명령어들의 역할.
- chmod : 파일/디렉터리의 사용자 권한 변경.
ex) rwx:rwx:rwx r(4)w(2)x(1):
user(접속사용자),
group(접속 사용자 가속한 그룹),
other(그 외 사용자들(프로세스, 다른 사용자)
- chown : 파일/ 디렉터리의 소유자 변경
ex) $ chown user:group 파일명
- mv : 파일의 위치 변경
디렉토리의 이름 변경 ($ mv dir1/ dir2/)
- ls -al : (숨김 파일 포함해서) 파일의 list 출력.
- cd ~/ : linux 로그인 후 홈 디렉터리로 이동.


9) NULL이란 무엇인가?
- 참조하는 값이 없다.
- 메모리에 참조할 객체가 없음.


10) '실행'과 '로딩'의 차이점.
코드가 기계어로 번역되어 메모리에 적재된 타이밍: 로딩.
로딩된 코드를 : 실행

 


11) 브라우저

익스플로워 IE 브라우저 

구글 브라우저 


12) DNS

 

도메인 네임 시스템 DNS 202.131.233.552.21 = naver.com

'용어정리' 카테고리의 다른 글

컴포넌트(Component)  (0) 2021.02.01
Xshell  (0) 2021.01.17
jdk, jre  (0) 2021.01.17

+ Recent posts