본문 바로가기
반응형

컴퓨터공학 기초/기초개념+TIP19

[기초개념] 프로세스와 스레드 프로세스 사전적 의미 : 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 프로세스는 프로그램실행시 Code,Data,Stack,Heap의 구조로 되어있는 메모리 영역을 할당 받는다. 프로세스는 최소 1개이상의 스레드를 갖는다. 스레드 프로세스가 할당받은 자원을 이용하는 실행의 단위 스레드는 프로세스 내에서 각각의 stack만 따로 할당을 받고 code,data,heap은 공유한다. 2020. 2. 23.
[기초개념] 객체지향 5대원칙 객체지향 5대원칙 (SOLID) SRP (단일책임 원칙) OCP (개방-폐쇄 원칙) LSP (리스코프 치환 원칙) DIP (의존 역전 원칙) ISP (인터페이스 분리 원칙) SRP 작성된 클래스는 하나의 기능만 가지며 클래스가 제공하는 모든 서비스는 하나의 기능을 수행하는데 집중되어 있어야한다. 기능이 많아지면 결합이 발생할 가능성이 높아지며 유지보수 비용이 증가한다. 그렇기때문에 책임을 분리시킬 필요가 있다. OCP 기존의 코드를 변경하지 않고 기능을 수정하거나 추가할 수 있도록 설계해야 한다. 변경될 수 있는것이 무엇인가에 초점을 맞춰야 한다. 변경이 일어날 수 있는 내용은 수정하기 쉽게 설계하고 변경되지 않아야 하는 것은 수정되는 내용에 영향을 받지 않게 설계해야 한다. LSP 자식클래스는 부모클래.. 2020. 2. 22.
[기초개념] stateful vs stateless stateless http와 같이 이전의 상태를 기록하지 않는 접속 입력값이 같을때 항상 같은값 보장 로드밸런싱, 스케일 아웃에 용이 매 요청시 상태정보를 전달하기때문에 비용이 더 들며 서버에서도 정보를 사전처리하기 위한 작업이 필요 stateful 상태를 기억하고 있는 것 서버의 무리가 가며 스케일 아웃에 어려움이 있다. 2020. 2. 19.
[기초지식]JVM 구조와 자바 런타임 메모리구조 (+Garbage Collector) JVM이란 ? - 자바 가상머신으로 자바 바이트 코드를 실행할 수 있는 주체 자바 코드를 컴파일해서 얻은 바이트 코드를 해당 운영체제가 이해할 수 있는 기계어로 바꿔 실행시켜주는 역할 - Class Loader, Execution Engine,Garbage Collector, Runtime Data Area 1. Class Loader - 자바에서 소스를 작성하면 .java파일이 생성된다. .java 소스를 자바컴파일러가 컴파일하면 .class파일이 생성된다 이렇게 생성된 클래스파일들을 엮어서 JVM이 운영체제로부터 할당받은 Runtime Data Area로 적재하는 역할 자바 애플리케이션이 실행중일때 수행된다. 2. Execution Engine - Class Loader에 의해 메모리에 적재된 클래스.. 2020. 2. 17.
[Git] Git 자주쓰는 명령어 정리/ Git Command git remote -v : 원격저장소를 조금 더 자세하게 볼 수 있다. git remote add 이름 원격저장소 url : 원격저장소를 추가할 수 있다. git status : git 프로젝트의 상태를 확인할 수 있다. (변경되거나 삭제된 파일 확인) git add : 파일을Staged상태로 변경한다. git commit : stage영역에 있는 파일들을 저장한다. git pull : 원격저장소의 파일들을 로컬저장소로 가져온다. git push : commit내역들을 원격저장소에 저장한다. git clone : 로컬저장소에 아무것도 없을 때 원격저장소의 프로젝트를 내려받는 명령어 git log : 커밋 히스토리 조회 2020. 1. 27.
AWS 배포순서 1. AWS 가입 2. IAM 생성 --> IAM을 생성해서 사용하는것이 AWS의 권장사항 3. 인스턴스 생성 --> ubuntu로 생성했음 4. 탄력적 IP생성 -> 탄력적 IP연동 --> 탄력적IP를 생성해놓고 사용을 안한다면 요금이 나온다니 주의하자 (알아보다가 알게되었다.) 5. 리눅스에 JAVA, TOMCAT 설치 6. 배포 (spring boot war 파일생성) --> 파일들을 잘 못읽어보길래 경로처음에 /를 다 삭제해주었다. --> ex) /css/~~.css --> css/~~~~.css 로 변경 2019. 12. 23.
[01] intellij gradle project 생성하기 2019. 12. 17.