본문 바로가기
728x90
반응형

Computer Science45

Singleton Pattern 싱글턴 패턴은 class 인스턴스를 하나만 만들고, 그 인스턴스로의 전역 접근을 제어하는 패턴이다. 전역변수처럼 사용 가능하지만 전역볏누와 다르게 객체를 필요할 때만 만들기 때문에 자원의 낭비가 덜하다. 연결 pool , Thread pool 같은 자원 pool관리에 이점이 있다. - 고전 싱글턴 패턴 구현 public class Singleton { private static Singleton uniqueInstance; ------> a private Singleton(){}------> b public static Signleton getInstance() { if(uniqueInstance == null){ uniqueInstance = new Singleton();------> c } retur.. 2022. 9. 26.
Factory / Factory Abstract Method Pattern Factory Method 팩토리 메소드 패턴은 객체를 생성할 때 필요한 인터페이스를 만든다. 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정한다. - 예시로 살펴보자. type에 따라 다른 pizza를 주문한다고 할 때 아래와 같이 작성할 수 있다. 하지만 type이 추가 될때마다 orderPizza에 대하여 수정이 필요할 것이다. 따라서, Pizza의 type에 따라 pizza를 만드는 부분을 객체 생성부분으로 캡슐화 한다. createPizza를 PizzaFactory에서 만들도록 한다. 이 때, 지점마다 pizza style이 다르다면? 지점마다 factory를 생성하여 해당 객체를 PizzaStore로 넘겨준다. 이 때, PizzaFactory와 PizzaStore을 하나로 묶을 수 있는데.. 2022. 9. 13.
콜백함수, Promise, async/await 예제 1) function printMe(){ console.log('Hello world!') } setTimeout(printme, 3000); console.log('대기중~'); ------------------------------ 대기중~ Hello world! setTimeout이 사용되는 시점에서 코드가 3초동안 멈추는 것이 아니라, 위에서 아래로 코드가 다 호출되고 3초 뒤에 printMe가 호출된다. js에서 비동기 작업을 사용할 때 가장 흔히 사용하는 방법으로 setTimeout 함수의 인자로 전달하고 있는 printMe 함수 자체를 콜백함수라고 한다. 예제 2 ) number 값이 주어지면 1초 뒤에 10을 더한 값을 반환하는 함수가 있다. function increase(numbe.. 2022. 9. 12.
동기 / 비동기 동기적 처리 : 요청이 끝날 때까지 기다리는동안 중지 상태가 되기 때문에 다른 작업을 할 수 없다. 비동기 처리 : 웹app을 멈추지 않기 때문에 동시에 여러 가지 요청을 처리할 수도 있고, 기다리는 과정에서 다른 함수도 호출할 수 있다. - 서버 API 호출 - setTimeout 함수를 사용한 특정 작업 예약 function printMe(){ console.log('Hello world!') } setTimeout(printme, 3000); console.log('대기중~'); ------------------------------ 대기중~ Hello world! setTimeout이 사용되는 시점에서 코드가 3초동안 멈추는 것이 아니라, 위에서 아래로 코드가 다 호출되고 3초 뒤에 printMe.. 2022. 9. 11.
[AWS] FreeTrier, client에서 EC2(서버) 접속하기 다운로드가 되어있는 key를 한 폴더로 옮긴 뒤, 해당 폴더에서 아래 작업을 진행해준다.(윈도우에서는 chmod를 지원하지 않기때문에 다음 작업을 했을 때 아래와 같은 warning이 발생한다.) 윈도우가 아니라면 ? terminal에서 key를 저장한 folder로 이동 후 "chmod 400 firstkey.pem"입력 윈도우라면? cmd에서 아래코드를 순차적으로 실행 icacls.exe firstkey.pem /reset icacls.exe firstkey.pem /grant:r %username%:(R) icacls.exe firstkey.pem /inheritance:r @뒤에 입력할 IPv4주소를 사용하여 이전에 받은 key가 저장된 directory로 terminal에서 아래와 같이 주소를 .. 2022. 9. 11.
[AWS] FreeTrier, 탄력적IP 생성하기 왼쪽 bar에서 네트워크 및 보안 > 탄력적 IP 탄력적 IP 주소 할당 버튼을 클릭하면 할당과 함께 주소를 알려준다. 이전에 만든 Instance에 이 주소를 붙여주자. 인스턴스 연결해준 뒤, 연결! 2022. 9. 11.
[AWS] FreeTrier로 인스턴스 생성하기 AWS Free Trier로 진행한다. 계정을 생성하면서 이메일 확인, 카드정보 입력, 문자/전화로 확인을 하면 가입이 완료된다. 아래 작업을 수행해보자 [ 클라우드 컴퓨팅 설정 ] - EC2 또는 인스턴스(서버) 생성 - Elastic IP(탄력적 IP) 생성 - IP주소, 동적IP, 고정IP - 자기 PC(Client)에서 EC2(서버) 접속 1. 서버 위치 설정 2. EC2 클릭 3. 인스턴스(주황 버튼) 시작 클릭 4. 아래와 같이 설정 후 나머지는 default로 사용 완료하면 다음과 같이 나온다! 2022. 9. 11.
Linux/Unix 운영체제 overview LINUX는 서버에 많이 사용되는 운영체제이다. 클라우드 컴퓨팅에도 많이 사용된다.(AWS) LINUX는 프로그래밍을 할 때에도 많이 사용된다. GNU 프로젝트와 GNU Hurd - 운영체제 커널 개발 시도 ( GNU Hurd ) - 운영체제에 필요한 라이브러리, 컴파일러, 에디터, 쉘 개발 But! GNU Hurd의 개발 지연과 리누스 토발즈가 리눅스 커널 소스를 오픈하면서 두 가지가 통합되어 개발되기 시작함. 2022. 9. 11.
Decorator Pattern 데코레이터 패턴은 객체에 추가 요소를 동적으로 더할 수 있으며 서브클래스를 만들 때보다 훨씬 유연하게 기능을 확장할 수 있다. 커피 종류, 추가 메뉴에 따른 총 가격을 출력해보자. 구조는 아래와 같다. 계속 감싸는 방식이라고 볼 수 있다. 파일 구조 더보기 Beverage.cs - Beverage : component 역할을 함 - CondimentalDecorator : decorator의 객체 Coffee.cs - Espresso - DarkRoast - HouseBlend - Decaf Additional.cs - Milk - Mocha - Soy - Whip Decorator.cs - Run : 커피주문!! 코드에는 추가로 size에 따라 추가메뉴의 가격이 달라지는 것을 반영하였다. 코드는 git.. 2022. 9. 6.
Observer Pattern 옵저버(관찰자) 패턴은 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고, 자동으로 내용이 갱신되는 방식이다. 변화가 일어나서 weatherData가 업데이트 될 때마다 장비의 화면을 갱신해보자. 구조는 아래와 같다. 인터페이스를 정의하고 구현하도록 구현해보자. 파일 구조 - 실습 c# 코드는 git에서 확인해보자! 온도가 바뀔 때마다 display되는 값들을 갱신한다. 2022. 8. 30.
728x90
반응형