본문 바로가기

코딩 공부204

[CS] 메모리 구조 (Stack, Heap, Data, Code) 메모리 작업을 처리하기 위한 기억 장치로 물리(메인) 메모리(RAM), 가상 메모리(SSD, HDD의 swap 영역)가 존재한다. 가상 메모리 : 필요한 내용만 물리 메모리에 올려 메모리를 관리하는 기법으로 요구 페이징 기법을 사용한다. (가상 메모리에는 방어적 코드와 같이 불필요할 수 있는 코드가 올라감) 요구 페이징 기법 : 유-무효 비트(valid, invalid)로 페이지가 메모리에 존재하는지 확인 후 없으면 보조 저장 장치에서 가져오는 기법 프로그램 실행 순서 프로그램이 실행하게 되면 OS는 메모리(RAM)에 공간을 할당해줍니다. 이때, 할당해주는 메모리 공간은 4가지(Code, Data, Stack, Heap)가 있습니다. 메모리 구조 1. 코드(Code) 영역 메모리의 코드(code) 영역은.. 2023. 2. 2.
[CS] 객체지향설계 5원칙 : SOLID SOLID 원칙 객체지향 설계5대 원칙이라 부르는데 SRP(단일 책임 원칙), OCP(개방-폐쇄 원칙), LSP(리스코프 치환 원칙), ISP(인터페이스 분리 원칙), DIP(의존 역전 원칙)을 말하고 앞자를 따서 SOILD 원칙이라고 부른다. 1. 단일 책임 원칙 (Single Responsiblity Principle) "어떤 클래스를 변경해야 하는 이유는 오직 하나뿐 이어야한다 - 로버트 C 마틴" 클래스는 그 책임을 완전히 캡슐화해야 함을 말한다. 설명 작성된 클래스는 하나의 기능만 가지며 클래스가 제공하는 모든 서비스는 그 하나의 책임을 수행하는데 집중되어야 한다. 작성된 클래스가 여러 기능을 가질 경우 기능에 대한 분기 처리를 해야 하기에 코드의 복잡도만 높아지므로 유지보수 시 좋지 않다 2... 2023. 2. 1.
[Spring] Dispatcher-Servlet Dispatcher-Servlet 디스패처 서블릿의 dispatch는 "보내다"라는 뜻을 가지고 있습니다. 그리고 이러한 단어를 포함하는 디스패처 서블릿은 HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러(Front Controller)라고 정의할 수 있습니다. 이것을 보다 자세히 설명하자면, 1. 클라이언트로부터 어떠한 요청이 오면 Tomcat(톰캣)과 같은 서블릿 컨테이너가 요청을 받게 됩니다. 2. 이 모든 요청을 프론트 컨트롤러인 디스패처 서블릿이 가장 먼저 받게 됩니다. 3. 디스패처 서블릿은 공통적인 작업을 먼저 처리한 후에 해당 요청을 처리해야 하는 컨트롤러를 찾아서 작업을 위임합니다. Front Controller란? Front Contr.. 2022. 12. 17.
[MyBatis] MyBatis MyBatis 객체 지향 언어인 자바의 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 할 수 있게 도와 주는 개발 (ORM, Object Relationship Mapping) 퍼시스턴스 프레임워크로서 JDBC를 통해 데이터베이스에 엑세스하는 작업을 캡슐화하고 일반 SQL 쿼리, 저장 프로 시저 및 고급 매핑을 지원하며 모든 JDBC 코드 및 매개 변수의 중복작업을 제거 합니다. Mybatis에서는 프로그램에 있는 SQL쿼리들을 한 구성파일에 구성하여 프로그램 코드와 SQL을 분리할 수 있는 장점을 가지고 있습니다. 퍼시스턴스(Persistence, 영속성)란? 프로그램이 종료되더라도 사라지지 않는 데이터의 특성을 말한다. RDBMS 혹은 파일 시스템 등 별도 데이터베이스에 영구적으로 저장하여 데이터가 영.. 2022. 12. 14.
[JS] Axios Axios Axios는 브라우저, Node.js를 위한 Promise API를 활용하는 HTTP 비동기 통신 라이브러리입니다. 쉽게 말해서 백엔드랑 프론트엔드랑 통신을 쉽게하기 위해 Ajax와 더불어 사용합니다. 브라우저 호환성 Axios 특징 운영 환경에 따라 브라우저의 XMLHttpRequest 객체 또는 Node.js의 http api 사용 Promise(ES6) API 사용 요청과 응답 데이터의 변형 HTTP 요청 취소 HTTP 요청과 응답을 JSON 형태로 자동 변경 HTTP란? HTML과 같은 하이퍼미디어 문서를 전송하기위한 애플리케이션 레이어 프로토콜입니다. Axios GET방식 GET은 서버에서 어떤 데이터를 가져와서 보여준다거나 하는 용도입니다. 주소에 있는 쿼리스트링을 활용해서 정보를 .. 2022. 12. 11.
[JS] Fetch Fetch JavaScript에서 서버로 네트워크 요청을 보내고 응답을 받을 수 있도록 해주는 매서드이다. XMLHttpRequest와 비슷하지만 fetch는 Promise를 기반으로 구성되어 있어서 더 간편하게 사용할 수 있다는 차이점이 있습니다. XMLHttpRequest란? XMLHttpRequest를 이용하면 웹 페이지를 전부 로딩하고도 서버로부터 데이터를 요청하거나 전송받을 수 있으며, 웹 페이지를 전부 로딩하지 않고도 일부만을 갱신하는 게 가능해진다. 따라서, AJAX는 JavaScript를 사용한 비동기 통신, 클라이언트와 서버 간에 XML 데이터를 주고받는 기술이라고 할 수 있다. 기본 구조 fetch(url) .then(res => { console.log(res) }) .catch(er.. 2022. 12. 10.