CS
-
[WEB] Restful APICS/WEB 2021. 8. 9. 20:22
📝 Restful API 💻 REST(REpresentational State Transfer) ✔ HTTP 통신에서 어떤 자원에 대한 CRUD 요청을 Resource와 Method로 표현하여 특정한 형태로 전달하는 방식이다. ✔ Restful한 API가 되기 위해서는 REST의 특징을 갖추어야 한다. 🔧 REST의 특징 일관된 인터페이스: URI로 지정한 리소스에 대한 조작 요청은 클라이언트의 플랫폼에 무관하며, 특정 언어에 종속받지 않는다. 무상태성(Stateless): 이전 요청이 다음 요청과 연관되지 않는다. 캐시: 캐싱 기능을 적용할 수 있다. 자체 표현 구조: 요청 메시지만 보고도 이를 쉽게 이해할 수 있어야 한다. 클라이언트-서버 구조: REST서버는 API제공, 클라이언트는 자원 요청, 사..
-
[Software Engineering] AgileCS/Software Engineering 2021. 8. 8. 19:51
📝 Agile 💻 Software Development Life Cycle (SDLC) ✔ 소프트웨어 개발부터 폐기까지 전 과정을 하나의 생명주기로 정의하고 단계 별 공정을 체계화한 모델이다. 🔧 다음과 같은 생명주기 모델이 있다. 폭포수 모델 - 한 단계가 완전히 끝나야 다음 단계로 넘어간다. 프로토타입 모델 - 시제품을 만들어 최종 결과물을 예측한다. 나선형 모델 - 위험 분석 과정을 포함하며 여러번 개발 과정을 거쳐 점진적으로 누락, 추가되는 요구사항을 첨가한다. 애자일 모델 - 고객 중심적이며 고객 요구사항 변화에 유연히 대응한다. 💻 애자일 방법론 🔧 애자일 방법론의 특징 고객과 지속적으로 소통하여 변화하는 요구사항을 신속하게 수용한다. 고객의 의견을 가장 우선시 한다. 짧은 개발 주기를 반복한..
-
[Software Engineering] MSACS/Software Engineering 2021. 8. 8. 18:02
📝 MSA 💻 Monolithic ✔ MSA가 도입되기 전, 모든 기능을 하나의 어플리케이션에서 비즈니스 로직을 구성해 운영하는 Monolithic 방식으로 개발이 이루어 졌다. 🔧 Monolithic 장점 개발시 환경 설정에 있어 간단하다. 작은 사이즈의 프로젝트에서 유리하다 🔧 Monolithic 단점 빌드/테스트 시간이 증가한다 - 하나를 수정해도 시스템 전체를 빌드해야 하며 유지보수가 힘들다. 작은 문제가 시스템 전체에 영향을 미친다. 확장성에 불리하다 - 하나의 서비스 확장을 위해 전체 프로젝트를 확장해야 한다. 💻 MicroService Architecture ✔ 기능 별로 컴포넌트를 나누고 조합할 수 있도록 구축한다. 🔧 컴포넌트란? 재사용이 가능한 독립적인 단위모듈이다. 구현, 명세화, 패..
-
[JAVA] 함수형 프로그래밍CS/Java 2021. 8. 7. 18:31
📝 함수형 프로그래밍 💻 명령형 프로그래밍(절차지향, 객체지향) ✔ 어떻게 할지 표현한다. 알고리즘을 명시하고, 목표는 명시하지 않는다. 🔧 명령형 프로그래밍의 특징 어플리케이션의 상태가 공유되고, 객체의 메서드와 함께 배치된다. 상태와 상태를 변경시키는 관점에서 연산을 설명한다. 🔧 간단한 명령형 프로그램을 작성해 보자. with JAVA for(int i = 0; i < 10; i++) { System.out.println(list.get(i); } i를 출력하기 위한 로직은 명시되어 있지만, 위 로직이 출력만을 위한 로직이라고 할 수는 없다. 이 과정에서 i라는 변수에 대한 값이 변경된다. 💻 선언형 프로그래밍(함수형) ✔ 어떻게 보다는 무엇을 하는지 설명하는 방식이다. 알고리즘을 명시하지 않고 목..
-
[OS] 컴퓨터 구조CS/OS 2021. 8. 6. 19:00
📝 컴퓨터 구조 💻 하드웨어 ✔ 컴퓨터를 구성하는 기계적 장치 🔧 CPU 프로그램 명령어와 데이터를 읽어와 처리하고 명령어의 수행 순서를 제어한다. 산술논리연산장치(ALU) + 제어장치 + 레지스터로 구성된다. 🔧 기억장치 프로그램, 데이터, 연산의 중간 결과를 저장한다. 주기억장치(RAM)과 보조기억장치(HDD, SSD)로 나누어 진다. 보조기억장치는 주기억장치에 비해 속도는 느리지만 자료를 영구적으로 보관할 수 있다. (비휘발성) 🔧 입출력장치 입력 장치는 컴퓨터 내부로 자료를 입력하는 키보드, 마우스 등에 해당된다. 출력 장치는 컴퓨터에서 외부로 표현하는 프린터, 모니터, 스피커 등에 해당된다. 🔧 시스템 버스 각각의 구성요소가 다른 구성요소로 데이터를 보낼 수 있는 통로이다. 데이터 버스: 중앙처..
-
[OS] 캐시 메모리CS/OS 2021. 8. 6. 17:52
📝 캐시 메모리 💻 캐시 메모리 ✔ 속도가 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리 🔧 CPU가 주기억장치에서 저장된 데이터를 읽어올 때 자주 사용하는 데이터를 캐시 메모리에 저장한 뒤 다음에 이용할 때 주기억장치가 아닌 캐시 메모리에서 먼저 가져오면서 속도를 향상시킨다. 속도는 빠르지만 비싸다는 단점이 있다. 🔧 작동 원리 시간 지역성: for, while같은 반복문에서 사용하는 조건 변수 처럼 한번 참조된 데이터는 잠시 후 다시 참조될 가능성이 높다. 공간 지역성: 배열과 같은 연속 접근 시 참조된 데이터 근처에 있는 데이터가 잠시 후 다시 참조될 가능성이 높다. 이러한 지역성을 최대한 활용하기 위해 해당 데이터 뿐만 아니라, 자주 사용될 주소의 데이터도 같이 가져..
-
[OS] CPU 작동원리CS/OS 2021. 8. 6. 17:13
📝CPU 작동원리 💻 CPU의 구조 ✔ CPU는 중앙 처리 장치로 컴퓨터 시스템을 통제하고 프로그램의 연산을 실행하고 처리하는 가장 핵심적인 컴퓨터의 제어 장치이다. 🔧 연산 장치 산술 연산과 논리 연산을 수행한다. 연산에 필요한 데이터를 레지스터에서 가져오고, 연산 결과를 레지스터로 보낸다. 🔧 제어 장치 명령어를 순서대로 실행할 수 있도록 제어한다. 주기억장치에서 프로그램 명령어를 꺼내 해독하고, 그 결과에 따라 명령어 실행헤 필요한 제어 신호를 기억장치, 연산장치, 입출력장치로 보낸다. 🔧 레지스터 고속 기억장치이다. 명령어 주소, 코드, 연산에 필요한 데이터, 연산 결과 등을 임시로 저장한다. 🙋♀️ 특수 목적 레지스터에 대해 알아보자! PC: 다음에 실행할 명령어의 주소를 저장한다. MAR: ..
-
[WEB]웹 서버 VS WASCS/WEB 2021. 7. 19. 20:23
📝 웹 서버 VS WAS ✨ 해당 글은 아래 [10분 테코톡]을 듣고 작성했습니다.✨ 📌 웹 서버에 대해 먼저 알아보자! 🔎 용어에 대해 알아보자. - Web 인터넷을 기반으로한 정보를 공유, 검색할 수 있게 하는 서비스 URL(주소), HTTP(통신 규칙), HTML(내용) - Server 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템 - Web Server 인터넷을 기반으로 클라이언트에게 웹 서비스를 제공하는 컴퓨터 🔎 웹 서버의 동작 과정 - Client 웹 서버에게 주소(URL)을 가지고 통신규칙(HTTP)에 맞게 요청하면, 알맞은 내용(HTML)을 응답 받는다. - Web Server Client의 요청을 기다리고 웹 요청(HTTP)에 대한 데이터를 만들어서 응답한다. 이..