전체 글

웹 개발 공부를 하고있습니다 ᕕ( ᐛ )ᕗ
Study

자바 객체 지향의 원리와 이해 5. SOLID

객체 지향의 설계 5원칙객체 지향 설계 (OOD) 5원칙 SOLID 은응집도는 높이고 결합도는 낮추는 원칙을 객체 지향 관점에서 재정립한 것이다.- 응집도 Cohension : 한 모듈 내 구성 요소들의 기능적 관련성응집도가 높으면 하나의 책임에 집중하고 독립성이 높아져 재사용과 유지보수가 용이하다.- 결합도 Coupling : 모듈(클래스) 간의 상호 의존 정도결합도가 낮으면 객체의 재사용이나 유지보수가 용이하다. SOLID 는 객체 지향을 프로그램에 올바르게 녹여내기 위한 원칙이다.속성, 메서드, 클래스, 객체, 패키지, 모듈, 라이브러리, 프레임워크, 아키텍처 등 다양하게 적용된다. SRP : Single Responsibility, 단일 책임 원칙어떤 클래스를 변경해야 하는 이유는 오직 하나뿐이어..

Study

자바 객체 지향의 원리와 이해 4. 객체 지향 (2)

abstract추상 메서드: 선언부만 있고 구현부는 없는 메서드  (추상? 공통 특성 추출?)✓ 추상 메서드를 하나라도 갖고 있는 클래스는 반드시 추상 클래스여야 한다.      → 추상 메서드는 추상 클래스 안에서만 존재할 수 있다 (인터페이스에도 존재..)✓ 추상 클래스는 인스턴스(객체)를 만들 수 없는 클래스이다. new 사용 불가      → 오로지 상속을 통해서만 사용될 수 있다✓ 추상 클래스를 상속한 하위 클래스는 반드시 추상 메서드를 오버라이딩(구현) 하여야 한다. 그러면 그냥 인터페이스 역할을 하는 클래스가 아닌가? 인터페이스와 차이점이 뭘까?일단, 인터페이스는 추상 클래스의 하나의 특수한 형태.추상 클래스는 추상 메서드 말고도 멤버변수, 메서드, 생성자를 선언할 수 있다.인터페이스는 이 ..

Study

자바 객체 지향의 원리와 이해 3. 객체 지향 (1)

객체 지향객체 지향은 우리가 현실 세계에서 사물을 인지하는 방식대로 프로그래밍 하려고 하는 데에서 출발했다.세상에 존재하는 모든 사물은 객체(object)이다.각각의 사물은 고유하다. 사물은 속성(property)을 가지고 있으며, 행위(method)를 한다.그리고 인간은 사물을 분류(class)하여 인지한다. e.g. 강호동(object), 유재석(object) 은 사람이라는 분류(class)에 속한다.그리고 이 객체들은 나이, 키 등의 속성(property)과 걷다, 말하다 등의 행위(method) 를 가진다. 객체object 를 번역하면 객체보다는 개체에 더 가깝다.객체 지향에서의 객체는 '세상에 존재하는 유일무이한 사물' 에 가깝다.그리고 이 객체는 속성과 기능을 가지고 있다. 클래스객체를 특성..

Study

자바 객체 지향의 원리와 이해 2. 메모리

JDK JRE JVM JDK: Java Development Kit, 자바 개발 키트Java SE 스펙을 준수한 구현체.자바 기반 소프트웨어를 개발하기 위한 도구들로 이루어진 패키지와 JRE 를 포함한다.자바 소스 컴파일러 javac.exe 를 포함하고 있다.  JRE: Java Runtime Environment, 자바 실행 환경자바 코드를 실행하기 위한 도구들로 구성된 패키지.자바 프로그램을 구동하기 위한 독립된 구성요소로 사용할 수 있지만, 동시에 JDK 의 일부이기도 하다.자바 프로그램 실행기 java.exe 를 포함하고 있다.  JVM: Java Virtual Machine, 자바 가상 머신자바 코드가 컴파일된 바이트 코드 파일을 실행하는 가상머신. 애플리케이션을 운영체제에 무관하게 실행..

Study

자바 객체 지향의 원리와 이해 1. Intro

기계어이진수 0과 1 로만 표현되며 CPU 에 따라 코드가 다르다.에드삭, 유니박 ... 등등 컴퓨터 마다의 전용 기계어가 존재. 어셈블리어기계어와 사람이 알아보기 쉬운 니모닉 기호를 일대일 매칭하는 코드표를 만들었다.기계어와 마찬가지로 CPU 에 따라 코드가 다르다. 그리고 이를 기계어로 번역해주는 어셈블러도 다르다. C 언어C 언어 이전까지는 같은 일을 하는 프로그램의 소스 파일을 기계의 종류만큼 만들어야 했다. 즉 멀티소스.하지만 C 언어는 소스파일을 단 하나만 만들면 된다. 싱글 소스! → 강력한 이식성 (어셈블리어 대비)One Source Multi Object Use Anywhere하나의 소스 파일을 각 기계에 맞는 컴파일러로 컴파일하면 각 기계에 맞는 기계어 목적 파일들이 만들어진다.(하지만..

Study

REST API

아니 그래서 REST API 가 뭐냐고 물어보면 뭐라고 대답해야되냐고 ... ʅ( ⌓̈ )ʃ 일단 REST 는 ROA(Resource Oriented Architecture) 이다. API 설계의 중심에 자원(Resource)이 있다. 그리고 REST 는 REpresentational State Transfer, 표현(representation) 에 의한 상태(State) 전달(Transfer) 이다. representation(표현)으로 해당 자원의 상태를 전달한다는데, 그러면 representation(표현)은 뭘까? representation은 특정 시점에 자원(resource)의 상태(state)를 반영하고 있는 정보이다. 우리가 api 요청을 보냈을 때, 응답으로 오는 payload 가 바로 r..

Study

데몬 daemon

데몬 daemon 요청에 응답하기 위해 오랫동안 실행중인 백그라운드 프로세스 부모프로세스(PPID)가 1 이거나 다른 데몬 프로세스인 프로세스 이름이 d로 끝나는 프로세스들이 대표적 (ex. sshd, httpd 등) 백그라운드 프로세스 사용자에게서 입력장치로 무언가를 전달받지 않고 스스로 동작하는 프로세스 ↔ 포그라운드 PID Process ID 시스템을 시작하고 종료하는 데에 사용되는 init 프로세스는 커널이 처음 만든 프로세스이므로 PID가 1이다 모든 프로세스는 init (PID 1) 을 부모 프로세스로 가지고 모든 스레드는 kthreadd (PID 2) 를 부모 프로세스로 가진다 nohup no hang up 의 약자 세션과 연결을 종료해도 실행시킨 프로그램을 종료하지 않음 데몬의 형태로 실..

Study

ssh, scp

SSH : Secure SHell 원격 호스트에 접속하기 위해 사용되는 보안 프로토콜 기존에 사용하던 telnet 에 암호화 기능을 추가하여 보안이 개선된 프로토콜이다 * Shell: 운영체제에서 커널과 사용자 사이에서 사용자의 명령을 해석하고 처리결과를 뿌려주는 시스템 프로그램 shell 은 흔히 두 종류로 구분하는데 CLI, GUI / 그 외에도 이 환경으로 접속하는 SSH 를 일컫는 말이기도 하다~! ssh [사용자계정]@[ip주소] -p [포트] # exit 로 연결을 끊을 수 있음 SCP : Secure CoPy SSH 기반으로 원격 ↔ 로컬 사이 파일과 디렉토리를 보내거나 가져올 때 사용하는 파일 전송 프로토콜 remote to local scp [옵션] [사용자계정]@[ip주소]:[파일경로]..

Study

리눅스 명령어

파이프라인 [명령어1] | [명령어2] 앞 명령어의 결과 값을 뒤의 명령어로 필터링하거나 가공할 때 주로 사용한다 awk, cut, grep, more 등과 조합하여 많이 사용한다 리다이렉션 grep, tail, cat, cut, more grep 지정한 문자열이나 정규표현식을 포함한 행을 출력한다 grep [옵션] [패턴] [파일] 옵션 -c : 일치하는 행의 수 출력 -i : 대소문자 구분 X ex. grep -i error output.log tail 마지막 행을 기준으로 지정한 행까지의 파일 내용 일부를 출력한다 (기본값 10줄) tail [옵션] [파일] 옵션 -f : 종료하지 않고 실시간 업데이트 출력 -n : 라인 수 지정 ex. tail -f output.log | grep error ex..

Study

vi, vim

vi, vim 은 리눅스 에디터이다. vi: visual editor vim: vi improved 향상된 vi vi 보다 vim 이 편리하고, 리눅스에서 보통 vi 를 실행해도 vim 이 실행되도록 alias 설정이 되어있다 우리가 보통 vi 를 호출하면 실행되는 것은 사실 vim 만약 vim 가 아닌 vi 라면 화살표 방향키로 커서를 이동할 수 없고, h j k l 로 이동해야 한다 1. 이동 h j k l : h (←), j (↓), k (↑), l(→) H / M / L : 화면의 맨 위 / 중간 / 아래로 이동 gg : 파일의 맨 처음 행으로 이동 (= 1G) G : 파일의 맨 마지막 행으로 이동 21G : 파일의 21번째 행으로 이동 :{행 번호} : 지정한 행 번호로 이동 2. :w / :w..

코딩하는토끼
TOKKI Library