Engineering WIKI/Docs
-
객체지향 (LID)Engineering WIKI/Docs 2021. 1. 17. 17:24
2023.05.27 - [Engineering WIKI/Docs] - SOLID 5가지 설계 원칙 2021.01.17 - [Engineering WIKI/Docs] - 객체지향 (LID) Liskov Substitution Principle (리스코프 치환 원칙) 자식 클래스는 부모 클래스에서 가능한 행위를 수행할 수 있어야 한다. 자식 클래스가 부모 클래스의 기본 의미를 해치지 않는지! 부모클래스와 자식클래스 사이의 행위에는 일관성이 있어야 한다. (부모 클래스의 인스턴스 대신 자식 클래스의 인스터스를 사용해도 문제가 없어야 한다는 것을 의미한다.) 상속 관계에서는 일반화 관계(IS - A)가 성립해야 한다. 일반화 관계에 있다는 것은 일관성이 있다는 것이다. 따라서 리스코프 치환 원칙은 일반화 관계에..
-
객체지향 (S: SRP / O : OCP)Engineering WIKI/Docs 2021. 1. 17. 17:19
2023.05.27 - [Engineering WIKI/Docs] - SOLID 5가지 설계 원칙 2021.01.17 - [Engineering WIKI/Docs] - 객체지향 (LID) S → SRP (단일 책임 원칙) 한 클래스는 하나의 책임만 가져야 한다. → Single Responsebility Principle 책임이란? 객체가 할 수 있는 것과 해야 하는 것으로 나뉜다. 즉, 객체는 자신이 할 수 있는 것과 해야하는 것만 수행 할 수 있도록 설계되어야 한다는 법칙. SRP를 지켜야 하는 이유? 고전적 설계개념인 응집도와 결합도 응집도 → 한 프로그램 요소가 얼마나 뭉쳐있는가를 나타내는 척도. 결합도 → 프로그램 구성 요소들 사이가 얼마나 의존적인지를 나타내는 척도. SRP가 필요한 코드 pu..
-
Socket 통신 (Http 통신과의 차이점)Engineering WIKI/Docs 2021. 1. 17. 17:10
소켓 이란? 소켓 → 프로토콜, ip주소, 포트넘버로 정의 됨. 떨어져 있는 두 호스트를 연결해주는 도구로써 인터페이스 역할. 데이터를 주고 받을 수 있는 구조체로 소켓을 통해 데이터 통로가 만들어 진다. 소켓의 역할에 따라 클라이언트 소켓, 서버소켓으로 구분된다. 소켓 통신의 흐름 서버 클라이언트 소켓의 연결 요청을 대기하고, 연결요청이 오면 클라이언트 소켓을 생성하여 통신이 가능하게 한다. socket()함수를 이용하여 소켓 생성 bind()함수로 ip와 port 번호 설정 listen()함수로 클라이언트의 접근 요청에 수신 대기열을 만들어 몇 개의 클라이언트를 대기 시킬지 결정. accept()함수를 사용하여 클라이언트와의 연결을 기다림. 클라이언트 실제로 데이터 송수신이 일어나는 것은 클라이언트 ..
-
SSL, SSH, HTTPS vs HTTPEngineering WIKI/Docs 2020. 11. 29. 06:56
Topic : SSL, SSH → Main features and The difference between Https and Http SSL → (Secure Sockets Layer) 주로 웹서버 인증이나 서버 인증이라고 말한다. 브라우저와 서버간의 통신이 암호화 되므로 중간에 패킷을 가로채더라도 내용을 알 수 없게 해준다. SSL이 적용되면 https://를 사용하여 웹서버에 접근. HTTP 웹 상에서 정보를 주고받기 위한 프로토콜 클라이언트/서버 사이에 이루어지는 요청/응답 프로토콜 암호화되지 않는 방법으로 데이터 전송 (악의적인 감청, 데이터 변조 가능성) HTTPS Http + SSL (보안이 강화된 HTTP) 모든 Http 요청과 응답 데이터는 네트워크로 보내지기 전 에 암호화 된다. SSH ..
-
Tomcat War 파일 배포Engineering WIKI/Docs 2020. 3. 22. 21:47
일반적인 경우 1. 프로젝트 war파일 생성 이클립스에서 maven 빌드하여 생성을 한다. 가장 간단하게 빌드를 하는 방법은 빌드할 프로젝트 우클릭 후 Run As → Maven install 을 하는 것이다. Maven build... 에서 clean package 등등의 maven 명령어를 통해서 진행을 해도 되지만 이게 제일 간단하다. Maven Install을 누르고 빌드가 Success가 되면 target 디렉토리 하위에 war 파일이 생성이 될 것이다. Eclipse에서 프로젝트 우클릭 → Export - Web - WAR file 선택 → Next버튼 클릭 Destination에 war파일 생성될 위치 지정하고, Finish버튼 클릭 2. Tomcat 폴더/webapps 폴더에 생성된 war..
-
Cron 이란? (크론 개념 뿌시기! 핵심 개념 기술!)Engineering WIKI/Docs 2019. 8. 6. 00:05
리눅스에서는 cron을 통해 스케쥴러를 실행할 수 있다. 윈도우에서도 리눅스처럼 cron을 할 수 있는 방법!! 윈도우즈에서 작업 스케줄러가 리눅스에서 cron 역할을 한다. 윈도우즈는 GUI(Graphic User Interface)로 되어 있어 화면을 보고 마우스로 쉽게 설정 할 수 있는 반면 리눅스는 쉘에서 텍스트 형태로 작성! 리눅스 개념 설명 후 윈도우 작업 스케줄러 설명! 1. 리눅스의 cron(crontab) crontab → cron을 관리하는 table을 말한다. Mac OS x도 유닉스 계통이기 때문에 리눅스와 마찬가지로 cron을 스케줄러로 사용 1.1 crontab 명령어 명령어 설명 crontab -e 예약작업 설징 및 수정 crontab -l 예약된 작업의 목록 보기 cronta..
-
Apache 와 Tomcat의 차이Engineering WIKI/Docs 2019. 2. 18. 12:08
아파치 & 톰캣 개념 1. 아파치 ⇒ 웹서버 (80 포트) 웹서버 (Apache, IIS, Nginx)는 하드웨어와 소프트웨어 두 분야에서 다른 의미로 부릅니다. 하드웨어 : 웹서버 소프트웨어와 웹 사이트의 구성 요소 파일을 저장하는 컴퓨터를 의미한다. (HTML 문서, Image, CSS 파일 등) 소프트웨어 : 보통 HTTP 서버를 의미한다. HTTP 서버는 URL(웹 주소) 및 HTTP(프로토콜 기능)을 이해하는 소프트웨어이다. HTTP 서버는 저장하는 웹 사이트의 도메인 이름을 통해 액세스 할 수 있으며, 이러한 호스팅 된 웹 사이트의 콘텐츠를 최종 사용자의 장치로 전달한다. IIS는 윈도우 환경에서 사용하는 웹 서버 프로그램입니다. 만약 윈도우 환경이 아니라면 Apache, Nginx를 이용할 ..
-
클라우드 컴퓨팅 개념 및 서비스 정리Engineering WIKI/Docs 2019. 2. 18. 12:04
클라우드란? 클라우드는 사용자가 서비스를 사용한 만큼의 비용을 지불하면서 서비스를 사용하는 것을 말하고 언제 어디서든 서비스를 접근하여 사용할 수 있는 서비스를 말한다. 서비스 종류 SaaS (Software as a Service) - host 가장 일반적인 유형의 클라우드 서비스이며 서비스를 제공하는 곳에서 인프라와 소프트웨어까지 모두 제공한다. 웹 메일이나, office 365, 구글 드라이브 등이 해당된다. IaaS (Ifnfrastructure as Service) - build 가상 서버, 데이터 스토리지 및 호스팅 컴퓨터, 네트워크 등 IT 인프라를 지원해주는 서비스이다. 대표적으로 성공한 것이 AWS이다. PaaS (Platform as a Service) - consume 기본적인 Iaa..