본문 바로가기

전체 글

(98)
[Nginx] Amazon Linux에서 Nginx 설치 및 설정하기 1. 시스템 업데이트 및 Nginx 설치sudo yum update -ysudo yum install -y nginx 2. Nginx 설정 파일 생성nginx 설정 파일 수정하러 이동 (기본적으로 nginx 관련된 정보는 여기에 다 있음)cd /etc/nginx/sudo vi nginx.conf Nginx의 nginx.conf 파일은 일반적으로 전체 설정에 대한 기본 설정을 포함하며,추가적인 사이트 설정은 /etc/nginx/sites-enabled/ 디렉토리에서 관리하도록 설정 include /etc/nginx/sites-enabled/*.conf; 를 추가해 sites-enabled 하위의 설정 파일들을 포함하도록 함 nginx.conf 파일에 기본 server 블록이 있는 경우, listen 80;..
운영체제(OS)란? 운영체제란? OS(Operating System) 사용자에게 편리한 인터페이스 환경을 제공하고 컴퓨터 시스템의 자원을 효율적으로 관리하는 소프트웨어 운영체제 종류 개인용 컴퓨터 : 윈도우, Mac OS 등 대형 컴퓨터 : Unix, Linux 등 모바일 운영체제 : 애플의 iOS, 구글의 안드로이드 (iOS는 애플의 폐쇄적인 정책으로 애플 제품에만 사용되며, 구글의 개방 정책으로 여러 스마트폰 제조사에서 사용하고 있음) 임베디드 운영체제 (임베디드 시스템) : 컴퓨터와 스마트폰뿐만 아니라 MP3 플레이어,내비게이션,PMP Personal Media player, 전자사전, 스마트 시계,스마트 TV 에서 사용되는 운영체제 CPU의 성능이 낮고 메모리 크기도 작은 시스템에 내장하도록 만든 운영체제 운영체제의..
[Refactoring] Chapter 03. Bad Smells in Code (코드에서 나는 악취) Chapter 03 코드에서 나는 악취냄새 나면 당장 갈아라. 켄트벡 할머니의 육아 원칙리팩터링은 '적용-방법'을 알고 있는 것과 '제때 적용할 줄 아는 것'은 다르다. 리팩터링을 시작하고 멈출 때를 판단하는 것은 리팩터링의 작동원리를 이해하는 것과 중요하다. 리팩터링할 시점을 판단하는 데 '냄새'라는 표현을 사용할 수 있다. 리팩터링을 멈추는 기준은 정확한 기준이 아니라 문제의 징후를 제시하고, 경험을 통해 감을 키워야 한다. 리팩터링 기법을 적용할 때는 냄새를 찾고, 이 책의 내용과 부록 B를 참고하여 올바른 방향으로 나아갈 수 있다.1. 기이한 이름 (Mysterious Name)코드의 가독성을 높이기 위해 이름을 명료하고 신중하게 지어야 한다. 이름 바꾸기는 리팩터링의 일환으로, 함수, 변수, 필..
[Refactoring] Chapter 02. Principles in Refactoring (리팩터링 원칙) Chapter 02 리팩터링 원칙 리팩터링 정의리팩터링은 코드를 이해하고 수정하기 쉽게 만드는 것이 목적이며, 성능 최적화와는 목표와 방법이 다르다. 성능 최적화는 속도 개선에만 집중하므로 코드가 더 복잡해질 수 있다. 💡 리팩터링: [명사] 소프트웨어의 겉보기 동작은 그대로 유지한 채, 코드를 이해하고 수정하기 쉽도록 내부 구조를 변경하는 기법 💡리팩터링(하다): [동사] 소프트웨어의 걸보기 동작은 그대로 유지한 채, 여러 가지 리팩터링 기법을 적용해서 소프트웨어를 재구성하다. 두 개의 모자 소프트웨어 개발 시 '기능 추가'와 '리팩터링'을 명확히 구분하여 작업하는 것이 중요하다. 기능 추가 시에는 기존 코드를 건드리지 않고 새로운 기능만 추가하며, 테스트를 통과하는지 확인..
[AWS] React, SpringBoot 서버 배포하기 _ 3. 인스턴스 연결 (with putty) 1. 인스턴스 ID 클릭 2. 연결 클릭 SSH 클라이언트 탭 클릭 putty 열기 3. SSH 클라이언트에서 ubuntu부터 복사 aws 키페어 등록 SSH -> Auth -> 키페어 등록
[Refactoring] Chapter 01. Refactoring : A first_example (리팩터링: 첫 번째 예시) 마틴 파울러(Martin Fowler)의 저서 "리팩토링 2판: 코드 구조를 체계적으로 개선하여 효율적인 리팩터링 구현하기"를 읽고 공부한 내용을 기록했습니다. (책에 나온 javascript 예시를 typescript로 변환했습니다.) Chapter 01 리팩터링: 첫 번째 예시 프로그램이 새로운 기능을 추가하기에 편한 구조가 아니라면, 먼저 기능을 추가하기 쉬운 형태로 리팩터링하고 나서 원하는 기능을 추가한다. 리팩터링의 첫단계 : 리팩터링하기 전에 제대로 된 테스트부터 마련한다. 테스트는 반드시 자가진단하도록 만든다. 리팩터링은 프로그램 수정을 작은 단계로 나눠 진행한다. 그래야 중간에 실수하더라도 버그를 쉽게 찾을 수 있다. 긴 함수를 리팩터링할 때는 먼저 전체 동작을 각각의 부분으로 나눌 수 있..
[Typescript] 데코레이터 Decorators 메타 프로그래밍 하는 데 매우 유용하게 사용 됨 메타 프로그래밍이란? end user가 페이지를 방문하는데, 보통 곧바로 영향을 주기에 데코레이터를 사용하지 않음 대신에 코드를 쓰는 데 적합하도록 만들어 데코레이터를 다른 개발자들이 사용하기 쉽게 함 데코레이터는 실체화되기 전 클래스가 정의만 돼도 실행 됨 function Logger(constructor: Function) { console.log("Logging..."); console.log(constructor); } @Logger class Person1 { name = "Yum"; constructor() { console.log("Creating person object..."); } } const pers = new Person1(); co..
[Typescript] 제네릭 Generic <T> 배열 타입 어떤 타입의 데이터가 저장되든 상관하지 않으며 저장하는 요소가 문자열 목록, 숫자형 목록, 객체 목록, 혼합된 데이터의 목록이든 상관하지 않지만 적어도 정보가 저장되는 것인지에 대해서는 확인 함 제네릭 타입 Generic 타입 안전성과 결합된 유연성을 제공 전달하는 값이나 클래스에서 사용하는 값을 유연하게 지정할 수 있음 추가한 제약 조건이 있다면 그 조건만 준수하면 됨 const names: Array = []; // string [] const names: Array = []; // string [], number [] promise 타입 const promise: Promise = new Promise((resolve, reject) => { setTimeout(() => { resolv..

LIST