이론 공부 25

python 이론 정리

1. ORM 장점, 단점 1) ORM(객체 관계 매핑) : 데이터베이스 시스템과 모델이라는 파이썬의 클래스를 연결하는 다리와 같은 역할 + 이러한 ORM 기능으로 다양한 데이터베이스 시스템을 지원하며 SQL 문장을 사용하지 않고도 테이블을 조작 가능 + 설정을 조금만 변경하면 이미 구축한 데이터베이스 시스템을 다른 데이터베이스로 쉽고 편리하게 변경 가능 + 클래스는 DB에서 테이블과, 각 멤버 객체들은 column에 대응 + 이후 makemigrations, migrate 명령어 입력해줘야 함 (DB가 변경 되었음을 알리고, 변경된 정보를 DB에 반영) 2) 장단점 : 장고에서 쉽고 빠르게 DB를 셋업할 수 있지만, 쿼리문을 직접 작성하지 않아서 복잡한 쿼리를 쓰기가 더 번거로움 2. 데코레이터는 무엇이..

이론 공부 2023.03.30

SOLID 원칙

SOLID 원칙 - 객체지향 설계 원칙 - SRP, OCP, LSP, ISP, DIP 5가지 원칙 1. SRP(Single Responsibility) 단일 책임 원칙 - 클래스는 단 한개의 책임을 가져야 함 - 클래스를 변경하는 이유는 단 하나여야 함 2. OCP(Open-Closed) 개방-폐쇄 원칙 - 확장에는 열려있어야 하고, 변경에는 닫혀있어야 함 - 기존의 코드를 변경하지 않고 기능을 수정하거나 추가할 수 있도록 설계해야 함 3. LSP(Liskov Substutution) 리스코프 치환 원칙 - 하위 타입 객체는 상위 타입 객체에서 가능한 행위를 수행할 수 있어야 함 - 상속 관계에서는 꼭 일반화 단계 IS-A가 성립해야 한다는 의미 4. ISP(Interface Segregation) 인터..

이론 공부 2023.03.29

기타 개념 정리

1. status code 200 - 웹 서비스에서 반환되는 상태 코드는 HTTP Status Code라고 불림 1) 200 : 요청이 성공적으로 되었음을 알려줌, 정보는 요청에 따른 응답으로 반환됨 (= 주로 서버가 요청한 페이지를 제공했다는 의미로 쓰임) 2) 404 Not Found : 서버가 요청받은 리소스를 찾을 수 없을 때 (브라우저에서 찾을 수 없는 URL을 입력했을 때, 서버에 존재하지 않는 페이지에 대한 요청이 있을 경우) 2. CRUD - 대부분 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말 + 데이터베이스에서는 INSERT, SELECT, UPDATE, DELETE (데이터베이..

이론 공부 2023.03.29

Java의 Call By Value, Call By Reference

1. Call by Value, Call by Reference 메서드를 호출할 때 파라미터를 전달하는 두 가지의 방식 1) Call by Value - Call by Value 는 메서드를 호출할 때 값을 넘겨주기 때문에 Pass by Value 라고도 부르기도 함 - 메서드를 호출하는 호출자 (Caller) 의 변수와 호출 당하는 수신자 (Callee) 의 파라미터는 복사된 서로 다른 변수 - 값만을 전달하기 때문에 수신자의 파라미터를 수정해도 호출자의 변수에는 아무런 영향이 없음 2) Call by Reference - Call by Reference 는 참조 (주소) 를 직접 전달하며 Pass By Reference 라고 부르기도 함 - 참조를 직접 넘기기 때문에 호출자의 변수와 수신자의 파라미터..

이론 공부 2023.03.28

캐시 (Cache) / 캐싱 (Caching)

캐시 (Cache) 1) 캐시 메모리 속도가 빠른 장치와 느린 장치 간의 속도 차에 따른 병목 현상을 줄이기 위한 범용 메모리 (컴퓨터의 성능 향상) (CPU와 주기억장치의 속도 차이) + 메인 메모리와 CPU 사이에 위치하며, CPU의 속도에 버금갈 만큼 메모리 계층에서 가장 속도가 빠르지만, 용량이 적고 비쌈 + 메인 메모리에서 자주 사용하는 프로그램과 데이터를 저장해두어 속도를 빠르게 함 2) 지역성 CPU가 어떤 데이터를 원하는지 어느 정도 예측할 수 있어야 함 (작은 크기의 캐시 메모리에 CPU가 이후에 참조할 정보가 어느 정도 들어있는지에 따라 캐시의 성능이 결정되기 때문에) - 공간 지역성 : 최근에 사용했던 데이터와 인접한 데이터가 참조될 가능성이 높다는 특성 - 시간 지역성 : 최근에 사..

이론 공부 2023.03.28

AWS, Docker 개념

9. AWS - 아마존 닷컴에서 개발한 클라우드 컴퓨팅 플랫폼 1) 클라우드 컴퓨팅 : 클라우드에서 서버, 스토리지, 소프트웨어 등 필요한 IT 자원을 받아서 사용하는 기술(Saas, Paas, Iaas) = 네트워크를 통해 접근 + 서버 설치와 같은 IT 자원에 대한 관리는 AWS가 전담하고, 기업들은 핵심 비즈니스에 집중할 수 있게 하는 컨셉이 클라우드 + 클라우드의 가장 큰 장점은 초기 비용이 없고, 서비스를 이용하는 만큼만 비용이 들어감 + 클라우드 역시 가상환경이기 때문에 이미지 기반으로 서버 관리가 가능(= 이미지만 있으면 동일한 서버를 쉽게 만들 수 있음) + 인프라의 가변성이 존재하기 때문에 서버 구축은 쉽게 가능했지만, application은 항상 같은 환경에서 실행하기 힘듦 = 이러한 ..

이론 공부 2023.03.28

RESTful API

RESTful API 1) API : 애플리케이션 프로그래밍 인터페이스 = 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의 2) REST : 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에, 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일 + REST는 네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나(자원의 표현에 의한 상태 전달) * REST는 URI와 HTTP 메소드를 사용해서 자원과 행위를 표현 (HTTP를 잘 사용하기 위해 URI와 HTTP 메소드를 사용해서 URL로 어떤 자원에 접근할 것인지, 메소드로 어떤 행위를 할 것인지를 표현하여 설계된 API) - 자원 : 해당 소프트웨어가 관리하는 모든 것(문서, 그림, 데이터 등) - 표..

이론 공부 2023.03.28

스크럼 (Scrum)

[1] 스크럼(Scrum) 1. 정의 - 스크럼은 팀이 중심이 되어 개발의 효율성을 높이는 기법 (스크럼은 팀의 중요성을 강조하는 용어) - 팀원 스스로가 스크럼 팀을 구성하고 개발 작업에 대한 모든 것을 스스로 해결할 수 있어야 함 - 애자일 방법론 중 하나 2. 스크럼 팀 구성원 역할 제품 책임자 (PO: Product Owner) - 요구사항이 담긴 백로그(Backlog)를 작성하는 주체 - 이해관계자들 중 개발될 제품에 대한 이해도가 높고, 요구사항을 책임지고 의사 결정할 사람으로 선정 * 백로그 : 제품 개발에 필요한 요구사항을 모두 모아 우선순위를 부여해 놓은 목록을 말함 (= 제품 기능 목록) 스크럼 마스터 (SM: Scrum Master) - 스크럼 팀이 스크럼을 잘 수행할 수 있도록 가이..

이론 공부 2023.03.28

자바 메모리 영역

1. Static 영역 - method 영역 내에 static 영역 존재 : 메모리 제일 먼저 할당 받음 1) static 영역 - static 영역이 non static 영역을 참조하는 건 불가능, 가장 먼저 만들어지는 영역이기 때문에 static이 실행될 때 non static은 만들어지기 전이기 때문 2) non static 영역 - static 영역의 데이터 참조 가능 - 그냥 int a = 3과 같은 기본 변수는 stack영역에 들어감 - Student b = new Student(); 와 같이 객체를 생성하는 경우 stack에 b를 참조할 수 있는 주소가 들어가고, 실제 값은 heap영역에 존재함 + heap영역에는 배열, 리스트, 클래스, String 등 값 등이 들어감 2. 변수 유효 범위..

이론 공부 2023.03.27

자바 이론 정리 2

1. 자바의 메모리 구조 * JVM의 메모리 구조 - 자바 프로그램이 실행되면 JVM(자바 가상 머신)은 OS로부터 메모리를 할당받고, 그 메모리를 용도에 따라서 여러 영역으로 나누어 관리함 - 메소드 영역(클래스 변수 저장, static 영), 힙 영역(new 키워드로 생성된 객체와 배열이 생성되는 영역, 가비지 컬렉터가 주기적으로 청소(알아서 회수)), 스택 영역(지역변수, 파라미터, 리턴 값, 연산에 사용되는 임시 값 등이 생성되는 영역) method 영역, Stack 영역, Heap 영역, Native method 영역, PC Register 영역 1) method 영역 static 변수와 상수, 프로그램의 흐름을 구성하는 바이트 코드 2) Stack 영역 지역변수, 메서드 매개변수, 메서드 정보..

이론 공부 2023.03.21