라벨이 #용어 정리인 게시물 표시

[용어 정리] SOLID란?

[용어 정리] SOLID란? 아무리 객체 지향 4대 특성인 캡슐화, 상속, 추상화, 다형성을 잘 한다고 해서 설계를 잘 하는것은 아니다. 물론 4대 특성의 묘미를 잘 살릴수록 설계가 좋다. 하지만 설계 원칙이라는게 엄연히 존재하고, 또 나름 중요하기 때문에 각 원칙의 맨 앞 알파벳만 따와 'SOLID'라고까지 했을까.. SOLID원칙들은 결국 자신 클래스 안에 응집도는 내부적으로 높이고 , 타 클래스들 간 결합도는 낮추는 High Cohesion - Loose Coupling원칙을 객체 지향의 관점에서 도입한 것이다. 결국 모듈 또는 클래스 당 하나의 책임을 주어 더욱더 독립된 모듈(클래스)를 만들기 위함이다. 이렇게 설계된 소프트웨어는 재 사용성이 높아지고, 수정을 최소화 해도 되기 때문에 결국 유지 보수가 용이해진다. 자 그럼 객체 지향 설계 5대 원칙이 각각 무엇인지 알아보자 SRP(Single Responsibility Principle) 단일 책임 원칙 OCP(Open Closed Principle) 개방 폐쇄 원칙 LSP(Liskov Substitution Principle) 리스코프 치환 원칙 ISP(Interface Segregation Principle) 인터페이스 분리 원칙 DIP(Dependency Inversion Principle) 의존 역전 원칙 SRP(단일 책임 원칙) 클래스의 역할과 책임을 너무 많이 주지 마라 즉, 클래스를 설계할 때 어플리케이션의 경계를 정하고, 추상화를 통해 어플리케이션 경계 안에서 필요한 속성과 메서드를 선택 해야 한다. OCP(개방 폐쇄 원칙) 자신의 확장에는 열려 있고, 주변의 변화에 대해서는 닫혀 있어야 한다. LSP(리스코프 치환 원칙) 하위 클래스의 인스턴스는 상위형 객체 참조 변수에 대입해 상위 클래스의 인스턴스 역할을 하는데 문제가 없어야 한다. LSP는 인터페이스와 클래스 관계, 상위 클래스와...

[용어 정리] 하드링크 & 심볼릭링크 차이

이미지
[용어 정리] 하드 링크 & 심볼릭 링크 차이 원본 파일로 하드 링크 를 만들면, 하드 링크는 원본 파일과 동일한 inode를 직접적으로 가리킨다. 따라서 원본 파일이 사라지더라도 데이터만 살아 있으면 원본 파일에 접근이 가능하다. 하지만 심볼릭 링크(소프트 링크) 의 경우는 만들게 되면 또 다른 inode를 생성해서 이를 바라본다. 복사 생성된 inode는 포인터를 가리키고, 포인터는 다시 원본 파일을 가리킨다. 따라서 특정 데이터에 접근할 때, 심볼릭 링크를 통해 접근할 경우 다시 원본 파일을 거치게 된다. 때문에 원본 파일이 사라질 경우 해당 데이터에 접근할 수 없다. 리눅스 inode 리눅스에는 inode라는 개념이 있다. 이는 리눅스(유닉스) 파일 시스템에서 사용되는 자료 구조이다. inode 파일 혹은 디렉터리의 각종 정보들을 담고 있다. 모든 파일과 디렉터리는 한개씩 inode를 가지고 있으며 여기에는 해당 파일의 허가권, 소유권, 파일의 실제 위치 등 중요한 정보들이 들어있다. inode가 모여 있는 공간을 inode block이라고 한다. inode block이 차지하는 공간은 매우 작으며, 실제 데이터가 저장되는 block이 디스크의 대부분을 차지한다.  inode는 우편번호 역할을 한다고 볼 수 있다. 리눅스 링크 명령어 ln 링크를 생성하는 명령어는 ln이다. 기본적으로 ln 명령어만 사용할 경우, 하드링크를 생성한다. 심볼릭 링크(소프트링크)를 생성하기 위해서는 -s 옵션을 줘서 "ln -s 대상파일"과 같은 식으로 실행한다. 출처 https://www.leafcats.com/141

[용어 정리] HTML5란?

[용어 정리] HTML5란? 대부분 알고 있듯이 웹을 지탱하는 핵심 기술은 HTML 입니다. 그리고 모바일 웹에서 핵심 기술을 뽑으라면 단연 HTML5 입니다. 흔히 HTML5에 폭발적인 관심을 불러일으킨 데에는 플래시(Flash)와 관련된 스티브 잡스의 발언이 그 출발이라는 것에 공통된 의견을 모읍니다. HTML5 는 HTML의 새로운 버전으로 Client Side Technology 기술의 중심이 되는 마크업 언어입니다. 가장 특징적인 것은 기존의 웹 문서에서는 HTML만으로 웹 서비스를 구성하는 것이 불가능하였지만 HTML5로 넘어오면서 클라이언트와 서버와의 통신이 가능하며 이에 대한 부가 기능을 제공함으로써 다른 외부 Active-X와 같은 플러그인을 사용하지 않고도 웹 서비스를 제공 할 수 있을 정도로 많은 기농이 추가되었습니다. HTML5는 Client Side Technology를 강력하게 지원하는 단순 표현 HTML을 그 이상의 의미를 가지도록 더 높은 차원으로 발전시킨 기술입니다. 즉, 기존의 HTML은 HTML 4.0이후에도 W3C에 의해서 HTML 4.01, XHTML 1.0, 1.1, 2.0 등으로 발전해 왔지만 이런 그동안의 HTML에서의 한계를 극복하기 위해서 HTML5가 탄생하게 된 것입니다. HTML5의 등장으로 CSS3, 자바스크립트 API를 통한 기능의 확장과 결합을 통해 기존의 HTML 이상의 의미를 부여하게 되었고, 기존의 Active-X와 같은 플러그인인 외부 기술에 의존했던 것을 걷어냄으로서 웹표준, 웹접근성을 한층 높여놓고 있습니다. 그리고 국내에서도 최근에 정부나 대기업에서도 액티브엑스의 과도한 사용을 자제하고 웹 표준을 권장하는 움직임을 보이고 있습니다. 특히 은행에서는 액티브엑스의 설치 없이 다른 웹브라우저에서도 인터넷 금융 서비스를 사용할 수 있는 이른바 '오픈뱅킹'을 적극적으로 도입하는 추세입니다. 새...

[용어 정리] MPEG란?

[용어 정리] MPEG란? 초고속 통신망을 통한 멀티미디어 사용이 급증함에 따라 초미의 관심이 대상되고 있는것이 바로 멀티미디어를 압축하는 것, 그리고 이를 효과적으로 End User까지 전하는 것 이다. 이 가운데 멀티미디어 관련 표준의 대명사로 불리우는 MPEG를 살펴보자 MPEG란? MPEG는 Moving Picture Experts Group의 약자로 원래 국제 표준화기구(ISO)와 국제 전기기술 위원회(IEC)가 정보 표현 표준화를 위해 구성한 공동위원회 산하 워킹그룹의 별칭이었는데 이것이 마치 하나의 일반 명사처럼 인식되고 있기도 하다. MPEG 현황 MPEG 1 저장기술 CD-ROM과 같은 디지털 저장 매체에 동영상 및 오디오를 저장하는 고압축 기술 1.5Mbps 이 규격으로 상품화된 것이 비디오 CD와 CD-I/FMV이다. MPEG 2 압축기술 DTV, HDTV등과 같이 방송용으로 사용하기 위한 고화질 동영상 및 오디오 압축 기술 3~10Mbps MPEG 3 MPEG 2에 흡수 통합되어 규격으로는 존재하지 않는다. MPEG 4 압축기술 Low Bit Rate인 PSTN이나 이동통신 전화에 응용하기 위한 압축으로 멀티미디어 응용제품 전반에 걸쳐 사용 가능한 압축 기술 ~64Kbps MPEG 7 멀티미디어 정보 검색기능 차세대 인터넷 언어인 XML을 이용하여 컨텐츠를 구현하며, BiM이라 명명된 압축방법을 제공 색상이나 물체의 모양에 관한 정보를 입력하는 것만으로 웹에서 필요로 하는 멀티미디어 자료를 찾을 수 있는 기술이다. MPEG 21 멀티미디어 프레임 워크 중심 디지털 콘텐츠의 제작 및 유통, 보안 등의 모든 과정을 관리하는 기술 출처 https://m.blog.naver.com/PostView.nhn?blogId=jangsame18&logNo=50012197194&proxyReferer=https%3A%2F%2Fwww.google.co...

[용어 정리] 클러스터링 컴퓨팅 & 그리드 컴퓨팅

[용어 정리] 클러스터링 컴퓨팅 & 그리드 컴퓨팅 클러스터링 컴퓨팅 LAN 으로 연결된 고속의 근거리 통신망으로 연결된 여러개의 컴퓨터를 이용하여 하나의 컴퓨터처럼 동작하는 시스템 여러개의 컴퓨터를 이용해 하나의 고사양 시스템을 이룸 그리드 컴퓨팅 WAN 으로 연결된 원거리 컴퓨터들을 하나의 시스템으로 묶어 고도의 연산처리 작업등을 처리하는 컴퓨팅 기술 인터넷상에서 사용하지 않은 시간대의 연결된 수많은 컴퓨터를 하나의 고성능 컴퓨터처럼 활용할 수 있는 기술 분산 컴퓨팅이라고도 한다. 고도의 연산처리를 위해 네트워크로 여러개의 컴퓨터를 연결하는 기술 인터넷상 ex) peer to peer PC, 워크스테이션, 서버 등과 같은 다양한 컴퓨터들의 네트워크  문제를 여러 조각으로 나누어 개별 컴퓨터에 분할하여 처리하도록 해준다. 크고 복잡한 계산을 할 수 있게 해준다. 컴퓨터를 추가하거나 제거하여 쉽게 규모를 조절할 수 있다. 유비쿼터스 컴퓨팅 신은 어디에나 널리 존재한다는 의미인 유비쿼터스 언제 어디서든 어떤 기기를 통해서도 컴퓨팅 할 수 있다는 것을 의미 ex) 세탁기, 귀걸이, 가스, 조명, 손목시계 등등 출처 https://galid1.tistory.com/187 https://www.sciencetimes.co.kr/?news=%EC%9C%A0%EB%B9%84%EC%BF%BC%ED%84%B0%EC%8A%A4-%EC%BB%B4%ED%93%A8%ED%84%B0-%ED%98%81%EB%AA%85-%EC%9C%A0%EB%B9%84%EC%BF%BC%ED%84%B0%EC%8A%A4-%EC%BB%B4%ED%93%A8%ED%8C%85%EC%9D%98-%EC%96%B4%EC%A0%9C

[용어 정리] 애드훅(Ad-Hoc) 네트워크

이미지
[용어 정리] 애드훅(Ad-Hoc) 네트워크 Ad-Hoc 네트워크는 분산형 무선통신 네트워크를 의미하며 특정 기지국에 의존하지 않고 무선 이동단말로만 구성된 네트워크 를 말한다. 송수신을 담당하는 단말들은 다른 단말기의 신호를 중계하는 기지국 역할까지 수행하고, 다양한 단말을 경유하는 네트워크이다. 기존 유선망 기반 무선 네트워크인 기지국 중심의 네트워크는 기지국 고장 시 네트워크 전체가 마비될 수 있고 기지국의 자체 용량 때문에 허용할 수 있는 사용자의 범위가 한정되지만, Ad-Hoc 네트워크는 응용 분야 측면에서 재해에 강하며 사용자 규모별로 네트워크의 크기를 자유롭고 용이하게 변경이 가능케 한 구조이다. 특징 전송 거리와 전송 대역폭에 제약을 받는다. 노드는 호스트 기능과 라우팅 기능을 동시에 가진다. 보안 및 라우팅 지원이 여러 노드 간의 협력에 의해 분산 운영된다. 유선 기반이 구축되지 않은 산악 지역의 긴급 구조나 전쟁터 등지에서 통신망을 구성해서 인터넷 서비스를 제공하는 기술이다. 출처 https://electronicsdo.tistory.com/entry/%EB%AD%90-ADHOC-network-%EB%9E%80

[운영체제] 안드로이드란?

이미지
[운영체제] 안드로이드란? 구글이 중심이 되어 개발하는 휴대 단말기용 플랫폼 일반적으로 안드로이드 애플리케이션의 네 가지 구성요소는 액티비티, 방송 수신자, 서비스, 콘텐츠 제공자입니다. 안드로이드는 구글에서 만든 스마트폰용 운영체제 입니다. 운영체제와 미들웨어, 사용자 인터페이스, 어플리케이션, MMS 서비스 등을 하나로 묶어 서비스를 제공하며 다양한 어플리케이션을 만들어 설치하면 실행될 수 있도록 구성된 어플리케이션 플랫폼이라고 볼 수 있습니다. 안드로이드는 보안, 메모리 관리, 프로세스 관리, 네트워크 관리 등 핵심 서비스는 리눅스(Linux)를 기반으로 제작 되었습니다. 개발자들이 자바 언어 로 응용 프로그램을 작성할 수 있게 하였으며, 컴파일된 바이트 코드를 구동할 수 있는 런타임 라이브러리를 제공합니다. 리눅스 커널 위에서 동작하며, 다양한 안드로이드 시스템 구성 요소에서 사용되는 C/C++ 라이브러리 들을 포함하고 있습니다. 구글은 안드로이드의 모든 소스 코드를 오픈 소스 라이센스인 아파치 v2 라이센스로 배포하고 있어 기업이나 사용자는 각자 안드로이드 프로그램을 독자적으로 개발하여 탑재할 수 있습니다. 출처 https://coding-factory.tistory.com/202

[용어정리] FIDO(Fast IDentity Online) 란?

이미지
[용어정리] FIDO(Fast IDentity Online)란? 기존에 사용하던 ID, 패스워드 방식이 아닌 주로 지문, 홍채, 얼굴 인식, 목소리, 정맥 등을 이용한 새로운 인증 방식입니다. 잊을래야 잊을 수 없는 생체 정보들을 활용합니다. 초기 생체 인증 방식은 해킹의 가능성으로 신뢰도가 높지 않았고, 생체 정보 전송의 위험 등의 한계가 있었습니다. 그러나 FIDO 방식은 이러한 문제를 극복하기 위해 인증 프로토콜과 인증 수단을 분리하여 보안을 높이고, 안정성을 확보하였습니다. FIDO의 2가지 프로토콜 UAF 기존 아이디와 패스워드 방식 대신 개인의 고유한 생체 정보를 인증 과정에 활용 합니다. 기기를 통해 생체 정보를 인식하면 FIDO 서버에 접속하게 됩니다. 이 방식은 이미 대중들에게 익숙한 방식일 것 같습니다. 휴대폰이나 노트북 로그인 시, 적외선 카메라로 얼굴을 인식하여 암호를 입력하지 않고도 로그인이 가능하게 됩니다. U2F 기존의 아이디, 패스워드 로그인 방식에 추가적인 2차 인증 을 거치게 됩니다. 보안 키가 저장되어 있는 USB포트를 꽃아 2차 인증하는 방식입니다. 대표적으로 구글의 '타이탄 키'가 있습니다. 구글 직원들의 계정 보호를 위해 도입한 타이탄 키는 외장형 USB 메모리 형태의 하드웨어 장치로, 사용자가 필요할 때 PC에 연결 후 터치를 해주면 로그인을 할 수 있는 인증수단입니다. 만약 해킹을 위해 아이디와 비밀번호를 알아낸다 해도 이 키가 없다면 계정에 접속할 수 없습니다. 출처 https://m.blog.naver.com/PostView.nhn?blogId=tmaxhq&logNo=221519925930&proxyReferer=https%3A%2F%2Fwww.google.com%2F

[운영체제] 쓰레싱(Thrashing)이란?

이미지
[운영체제] 쓰레싱(Thrashing)이란? 페이지 부재가 과도하게 발생하는 상황 주기억장치의 모든 페이지가 활발히 사용되고 있어서 어떤 페이지가 교체된 후 곧바로 반복적인 페이지 부재가 발생 프로세스의 실행보다 페이징을 위해 더 많은 시간이 소요 멀티 프로세싱을 계속 증가시키면 각각의 프로세스는 페이지 부재가 발생 쓰레싱의 원인 CPU 이용률이 떨어질 때 새로운 프로세스를 추가하여 멀티 프로그래밍 정도(degree)를 높이려 하기 때문 멀티 프로그래밍 정도가 과도하게 높아지면 프로세스의 프레임 개수 감소하고 페이지 부재 증가 입출력 대기가 길어져서 CPU 이용율 감소 새로운 프로세스를 시작 페이지 부재 증가와 CPU 이용률 감소가 악순환됨 지역교환 알고리즘 or 우선순위 교환 알고리즘 지역교환 알고리즘하에서는 한 프로세스가 쓰레싱을 유발하더라도 다른 프로세스로부터 프레임을 뺏어 올 수 없으므로, 다른 프로세스는 쓰레싱으로부터 자유로울 수 있다. 쓰레싱 현상 방지 방법 각 프로세스가 필요로 하는 최소한의 프레임 갯수를 보장해주어야 합니다. CPU의 이용률을 높이고 쓰레싱현상을 방지하기 위해서는 다중 프로그래밍의 정도를 낮추어야 합니다. 즉, 각 프로세스들에게 충분한 페이지 프레임 을 할당할 수 있도록 해 주거나 주기억 장치 내에 워킹 세트(Working set) 을 제대로 유지하는 한 스레싱이 방지된다. working set : 임의의 시점에 집중적으로 참조되는 페이지들을 모두 주기억장치에 적재시켜 프로세스로 하여금 페이지 부재를 거의 발생시키지 않도록 하는 set, 이 기법은 프로세스가 현재 시간 이후에도 어느 정도 시간 동안은 이 집합에 속한 페이지들을 집중적으로 참조할 것이라는 지역성을 기반으로 한다 또 구역성(locallity) 을 이용한다. 출처 https://www.youtube.com/watch?v=-TDDn0CwMxg

[운영체제] 스레드, 프로세스, 테스크 용어 정리

이미지
[운영체제] 스레드, 프로세스, 테스크 용어 정리 process(프로세스) 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 리눅스에서 실행되고 있는 바이너리,윈도는 실행되고 있는 프로그램으로 보면 될것입니다. 비동기적 행위를 일으키는 주체 운영체제가 관리하는 실행 단위 프로시저가 활동 중인 상태 프로시저 : 일 처리의 순서, 절차, 방법을 의미하며 특정 작업을 처리하기 위한 프로그램의 한 부분 thread(스레드) 프로세스에서 실행 제어만 분리한 실행 단위 경량 프로세스 (LWP, Light Weight Process)라고도 부름 중량 프로세스(HWP, Heavy Weight Process)는 스레드를 하나 가진 작업 한마디로 하면 Process의 작업단위를 세분화한 것이 thread입니다. 프로그램 내에서 실행되는 흐름의 단위 흐름이란게 좀 의미가 아리송하게 다가올 수 있는데 플로우 차트를 생각하면 된다 플로우 차트에서 프로그램은 하나의 흐름으로 그려진다. 그런데 2개 프로그램이 동시에 슬러가야 하는 경우도 있을 것이다. 이러한 실행 방식을 멀티스레드(multithread)라고 한다. task 작업의 최소 단위로써 process, thread라고 할 수 있습니다. 과거 single tasking에는 대표적인 OS는 MS-DOS가 있었고 특정 작업이 끝날 때 까지 대기해야만 다음 작업을 할 수 있었습니다. 이후 일괄처리나 시분할 시스템의 구현으로 multi tasking이 가능하게 되었습니다. multi tasking의 예 : 윈도우, 리눅스, 유닉스 등 동시에 여러 가지 작업이 가능해지면서 동일한 서비스를 다수에게 제공하기 위해 process의 복제가 필요하게 되었습니다.(fork()) fork의 특징 : process를 완벽(Global Variables, code, stack)하게 복제하고 부모에게 상속된다는 점 즉, 복제 비용이 증가하고 리눅스 환경에서 p...

[용어 정리] Serverless computing이란?

이미지
[용어 정리] Serverless computing이란? 네트워크 산업에서 많은 사람이 서버리스가 클라우드 컴퓨팅의 '다음 물결'이라고 말합니다. 그렇다면 서버는 어디로 간것일까요?? 서버리스 컴퓨팅에도 서버가 있습니다. 서버가 사라지는것이 아니라, 특정 애플리케이션. 기능, 스토리지에 사용되는 전용 서버가 사라집니다. 서버리스 컴퓨팅은 특정 기능이나 이벤트가 발생할 때에만 리소스를 사용합니다. 특히 사물인터넷 애플리케이션에 대한 관련성이 높습니다. 많은 경우, 이벤트가 트리거되기 전까지는 앱은 아무 일도 하지 않습니다. ex) 가정용 보안 카메라 애플리케이션은 동작을 탐지해야 작동을 시작합니다. 1. 동작을 탐지해야 녹화를 하고 2. 클라우드 서비스로 녹화 영상을 보내고 3. 집 주인의 스마트폰에 알람을 전송합니다. 이벤트가 일어날 때까지 전용 서버와 네트워크 서버를 유휴 상태로 방치하는 것입니다. 이는 너무 많은 비용이 발생합니다. 서버리스 컴퓨팅은 이벤트가 발생했을 때 인프라 리소스를 가져옵니다. 이는 개발자에게 자유를 가져다 줍니다. 이를 통해 개발자는 앱 구축에 필요한 인프라를 고려할 필요가 없습니다. 원래 앱 구축에는 서버 수. 스토리지 오견, 서버 위치 등 인프라를 생각해야 합니다. 하지만 여러 서버리스 플랫폼이 제공하는 기능 라이브러리에서 선택할 수 있습니다. 아마존 AWS 람다와 마이크로소프트 애저펑션은 가장 많이 알려진 기술입니다. 출처 https://www.youtube.com/watch?v=VjJpWCSGQ_E

[용어 정리] 파라미터, 아규먼트 차이

[용어 정리] 파라미터, 아규먼트 차이 아규먼트(argument)와 파라미터(parameter)를 흔히들 구분하지 않고 사용한다. 하지만 이 둘은 분명한 차이가 있다. PARAMETER란? 한글 그대로 번역하면 '매개변수'라는 뜻 함수를 정의 할 때 외부로부터 받아들이는 임의의 값을 의미 function f(x,y){ return x+y; }; 위의 코드에서 x,y가 파리미터라고 볼 수 있음 ARGUMENT란? 한글 그대로 번여하면 '인수'라는 뜻 함수를 호출 할 때 이 때 사용 하게 되는 일련의 값들을 아규먼트라고 부름 f(3,4)에서 3,4는 아규먼트 즉, 파라미터의 값으로 아규먼트(3,4 등)를 대입하는 것 출처 https://enarastudent.tistory.com/entry/함수의-아규먼트와-파라미터의-차이 [Coding Story]

[용어 정리] 객체지향(OOP)란?

[용어 정리] 객체지향(OOP)란? 객체 지향 프로그램(Object-Oriented Programming)이란? 객체 지향 프로그래밍은 컴퓨터 프로그래밍의 패러다임의 하나 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. 또한 프로그래밍을 더 배우기 쉽게 하고 소프트웨어 개발과 보수를 간편하게 한다 보다 직관적인 코드 분석을 가능하게 하는 장점도 있다. 그러나 지나친 프로그램의 객체화 경향은 실제 세계의 모습을 그대로 반영하지 못한다는 비판도 있다. 프로그램은 특수한 목적을 가지고 데이터를 처리하기 위하여 만들어진다. 그런데 복잡한 데이터를 수많은 함수로만 처리하다 보면 여러가지 에러와 버그가 발생하는 문제점이 나타난다. 클래스는 이러한 문제를 해결하고 복잡한 데이터를 조금 더 쉽게 처리하게 도와준다. 주의점 일반적으로 프로그램을 만들때 항상 염두에 둬야 할 중요 포인트 2개 같은 코드를 반복하지 않는다. 코드는 항상 바뀔 수 있다는 것을 기억한다. 또한 클래스를 사용하면 사전이나 리스트가 지원하지 않는 상속과 같은 클래스의 기능도 사용 가능 출처 http://schoolofweb.net/blog/posts/

[용어 정리] jar, war 차이 정리

[용어 정리] jar, war 차이 정리 Java로 개발한 application을 배포할 때는 jar, war형태로 배포하게 된다. 이 둘은 완전히 동일한 형식임 즉, 확장자를 서로 바꿔도 문제는 없지만, 만들어진 목적이 서로 다름 war는 Web application을 배포하는 형식 jar는 library나 일반 application을 배포하는 형식 JAR(Java ARchive) jar압축은 하나의 application기능을 가능하도록 java파일 등을 압축하고 지원 만드는 목적 : 자바 클래스 파일들이 주이며, EJB 파일들을 포함 EJB(Enterprise Java Beans) : 기업 환경의 시스템을 구현하기 위한 서버측 컴포넌트 모델 path등의 경로를 유지하기 때문에 jar파일을 사용하는 사용자들은 각 파일들에 대한 path문제에서 벗어날 수 있다. ex) ojdbc14.14, servlet-api, jar 등 WAR(Web Archive) war압축은 jar과 달리 웹 어플리케이션을 지원하기 위한 압축방식 웹 어플리케이션을 지원하기 위해서 war 압축방식은 jsp, servlet, gif, html, jar 등을 압축하여 지원 이는 jar과 같은 맥락으로 servlet context 접근을 위해 관련된 모든 파일들을 패키지화 만드는 목적 : 웹 어플리케이션에 관련된 파일들을 포함한다. ex) jsp, servlet 파일 등 출처 https://teamescape.tistory.com/51

[용어 정리] 개발자 vs 엔지니어

[용어 정리] 개발자 vs 엔지니어 개발자 목적에 맞는 프로그램을 만드는 일 고객대상( 고객과의 대화) 프로그램 설계 및 개발 프로그램 테스트  엔지니어 프로그램 설계, 개발 프로그램 테스트 프로그램 유지보수 프로그램 발전고려 출처 https://m.blog.naver.com/PostView.nhn?blogId=wipr82914&logNo=220402091814&proxyReferer=https%3A%2F%2Fwww.google.com%2F

[용어 정리] XML? JSON? 비교

이미지
[용어 정리] XML, JSON 비교 XML? JSON? 이것들은 무엇일까? XML과 JSON은 구조화된 문서를 전송 가능하게 만든 텍스트 포멧 형식을 말한다 이 둘은 모두 특정한 의미를 가진 데이터를 담는 포멧을 정의 ex) RSS피드의 경우 현재는 XML방식이 널리 사용되는데 RSS정보를 분리하여 정보를 읽을수 있도록 내용을 DB에서 불러와 XML포맷으로 변환한다. 일단 XML과 같은 텍스트 방식의 전달방식은 텍스트로만 정보가 이루어 지기 때문에 기기에 구애받지 않고 어느 환경에서건 사용이 가능하도록 플랫폼에서부터 자유로운 방식 JSON은 XML의 단점을 보완 JSON이 XML보다 많이 쓰이는 이유 복잡성 무거운 시스템보다는 유연하고 구성 가능한 툴이 환영받고 있는데 JSON은 이런 흐름을 잘 타고 있다. 보안 XML은 적절하게 파싱(Parsing)을 거쳐도 BL(Billion Laughs)공격 또는 EE(External Entity)공격 같은 보안 취약성을 일부 가지고 있다.  하지만 JSON은 그렇지 않다.  JSON을 이러한 위험성에 노출되는 툴을 개발하기 어렵지만, XML은 능동적으로 확인하고 피해야 함 자바스크립트 JSON은 자바스크립트로 작성되었다.  JSON을 사용하면 송신과 수신 족에서 새 데이터 요소를 패키지화하고 해체하는 추가 작업이 적다. 본래 자바스크립트와의 손쉬운 상호운용성을 위해 자바 스크립트에서 사용하는 문법을 그 자체의 데이터 형식으로 뽑아내도록 정의됐다. 툴지원 JSON의 인기가 높아지면서 더 많은 개발자 툴이 표준으로 받아들여지고 있다. 출처 https://usbs.tistory.com/entry/ https://12bme.tistory.com/202

[용어 정리] 서버리스(serverless) 컴퓨팅이란?

[용어 정리] 서버리스(serverless) 컴퓨팅이란? 서버리스 컴퓨팅을 통해 개발자는 클라우드 기반 서버, 인프라 및 운영 체제를 사용함 실제로 서버리스라고 하지만 서버가 계속 관련됨 그러나 완전히 관리되는 서비스로서 설정, 용량 계획 및 서버관리는 클라우드 공급자에 의해 처리되므로 사용자에게 표시되지 않음 기존 황경에서 개발자는 서버를 프로비전 및 구성하고, 운영 체제를 설치하고, 인프라를 지속적으로 관리해야 했었지만 서버리스 아키텍처를 사용하면 인프라를 걱정할 필요 없이 요청 시 크기가 조정되는 앱을 자유롭게 만들고 관리하고 배포할 수 있음 ex) GCP, AWS, Azure 등이 제공 출처 https://azure.microsoft.com/ko-kr/overview/what-is-serverless-computing/

[용어 정리] Commit이란?

[용어 정리] Commit이란? COMMIT : 저장되지 않은 모든 데이터를 데이터베이스에 저장하고 현재의 트랜잭션을 종료하라는 명령 데이터베이스에서 트랜잭션(Transaction) 이란, 논리적인 일의 단위를 말함. 예를들어서, 생각해보면 사용자가 INSERT 문을 사용해 데이터를 삽입하고, UPDATE문으로 데이터를 갱신하고, DELETE 문으로 데이터를 삭제하였다고 하자 만약 이 모든 과정이 오류없이 수행되었다면 지금까지 실행한 모든 작업을 ' 실제로' 수행하라는 명령 을 내릴 수 있는데 이 때의 명령이 바로 COMMIT 명령 COMMIT 명령을 주기 전까지의 모든 작업은 ROLLBACK 명령으로 원상태로 되돌릴 수 있음 만약, INSERT작업 후 SAVEPOINT A라는 명령을 실행하였다면 나중에 ROLLBACK 라는 명령을 통해 INSERT작업을 한 그 위치로 되돌아 올 수 있음 그러나 COMMIT을 실행하면 불가능 이와 같이 COMMIT 명령으로 하나의 작업이 성공적으로 끝났을 때, 트랜잭션이 끝났다고 볼 수 있음 출처 https://m.blog.naver.com/PostView.nhn?blogId=woghdi8318&logNo=51124164&proxyReferer=https%3A%2F%2Fwww.google.com%2F

[용어 정리] 콜백(callback)함수란?

[용어 정리] 콜백(callback)함수란? CallBack함수란 이름 그대로 나중에 호출되는 함수 콜백 함수라 해서 그 자체로 특별한 선언이나 문법적 특징을 가지고 있지는 않다 콜백 함수도 일반적인 자바스크립트 함수일 뿐 콜백 함수는 코드를 통해 명시적으로 호출하는 함수가 아니라, 개발자는 단지 함수를 등록하기만 하고, 어떤 이벤트가 발생했거나 특정 시점에 도달했을 때 시스템에서 호출하는 함수 즉, 콜백 함수는 유니크한 문법적 특징을 가지고 있는 것이 아니라, 호출방식에 의한 구분 대표적인 콜백 함수의 사용 예로는 자바스크립트에서 이벤트 핸들러 처리이다. <button id="button1" onclick="button1_click();">버튼1</button> <script> function button1_click() { alert("버튼1을 누르셨습니다."); } </script> HTML에 onclikc에 buttion1_click함수는 브라우저의 javascript API에서 DOM 이벤트 핸들러에 전달(등록)되고, 해당 버튼에 클릭이벤트가 발생했을 이벤트 핸들러가 콜백함수를 호출함 $( "#target" ).click(function() { alert( "Handler for .click() called." ); }); 위처럼 Jquery에서도 콜백함수를 자주 사용 함 콜백함수란 특정함수에 전달되어 특정함수가 어떤 조건에 의해 호출되는 함수 출처 https://blog.hanumoka.net/2018/10/24/javascript-20181024-javascript-callback/

[JS] 데이터 바인딩이란?

[JS] 데이터 바인딩이란? 자바스크립트 웹 애플리케이션의 복잡도가 증가하면서 브라우저의 메모리에 있는 여러 개의 자바스크립트 객체 와 화면에 있는 데이터 를 일치시키기가 매우 어려워졌다 이러한 어려운 작업을 쉽게 해주는 해결책이 데이터 바인딩 데이터 바인딩 두 데이터 혹은 정보의 소스를 모두 일치시키는 기법 즉, 화면에 보이는 데이터와 브라우저 메모리에 있는 데이터를 일치시키는 기법 많은 자바스크립트 프레임워크가 이러한 데이터 바인딩 기술을 제공하고 있다. 단방향 데이터 바인딩 vs 양방향 데이터 바인딩 단방향 데이터 바인딩 : 데이터와 템플릿을 결합하여 화면을 생성 양방향 데이터 바인딩 : 데이터의 변화를 감지해 템플릿과 결합하여 화면을 갱신하고 화면에서의 입력에 따라 데이터를 갱신 즉, 데이터와 화면사이의 데이터가 계속 일치 출처 https://sungjk.github.io/2015/11/22/AngularJS(2).html