본문 바로가기

전체 글

(36)
[스프링 입문] 회원 관리 예제의 백엔드 개발 & 의존성 주입 ▶ Spring Boot에서의 핵심 폴더들 - controller, domain, repository, service 각각의 폴더를 만들고, 각각의 역할을 세분화함으로써 코드를 더 모듈화하고 유지보수하기 쉽게 만들 수 있음. 1 Controller 앱의 웹 계층을 담당하며, 사용자의 요청을 받아 처리하는 역할을 함. 주로 HTTP 요청 담당이라고 생각하면 됨.@Controller 라는 어노테이션이 붙음. @GetMapping, @PostMapping 등도 쓰임.  2 Domain 도메인은 앱의 비즈니스 로직과 관련된 객체들을 정의하는 계층. 주로 Entity - 예를 들면 user나 member 등의 - 클래스들이 이 패키지에 위치함.  3 Repository 데이터 접근 계층을 담당하는데, DB와 상호..
[스프링 입문] 정적 컨텐츠와 MVC, 템플릿 엔진 웹을 개발하는 것은 크게 세가지를 포함한다. 1 정적 컨텐츠 static contents - 순수 HTML 등2 MVC - jsp, php 등의 템플릿 엔진, 순수 HTML 아니고 동적으로 변형한 녀석들. 이걸 스프링에서는 MVC로 표현.3 API   ▶ 스프링에서 static을 다루는 건 쉽다. 앞서 main > resources > static 폴더가 존재한댔는데, 거기에다가 우리의 static 파일 넣어주면 된다.만약 hello-static.html 파일이라면, 기존의 URL의 끝에 해당 파일 이름(~/hello-static.html) 넣어주면 된다.매우 easy peasy. 이렇게 진행되는 과정은 다음과 같다.서버는 들어온 요청이 정적에 대한 요청인지 동적에 대한 요청인지 알 수가 없기 때문에, ..
[스프링 입문] 스프링 관련 기본 개념들 2024.08.08 - 08.11: 김영한 님의 인프런 스프링 입문 강의를 듣고 작성한 자료   ▶ Spring Boot, initilizr 시작 참고로 Spring 프레임워크의 다양한 모듈과 프로젝트 중 하나가 Spring Boot다.자동구성(Autoconfig) 기능을 제공하고, 개발자가 설정파일을 최소화하고 앱을 신속하게 시작할 수 있도록 함.Tomcat, Jetty 등의 내장 서버로 쉽게 실행할 수 있음. Spring 프레임워크를 더 쉽게 자동화, 간소화해준 Spring Boot를 더 쉽게 시작하게 해주는 게 initializr.initializr를 설정할 때, 다른 것들은 다 이해가 되는데 gradle-groovy, gradle-kotlin, maven 이 부분에서는 gradle-groovy를 ..
[OS] 운영체제 꼬리물기 질문 대비 * 참고한 사이트: https://github.com/ksundong/backend-interview-question, https://suhyunsim.github.io/2023-03-14/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EB%A9%B4%EC%A0%91%EC%A7%88%EB%AC%B8 Q 프로그램의 종류에 대해 설명해주세요 애플리케이션, 미들웨어, 운영체제 이렇게 구분할 수 있을 것 같습니다. 애플리케이션은 사용자가 직접 사용하는 프로그램을 의미합니다. 미들웨어는 여러 개의 애플리케이션이 공통으로 사용하는 것들을 모아 앱의 실행을 도와줍니다. 운영체제는 큰 틀에서 사용자가 하드웨어를 사용하는 것을 도와주는 소프트웨어라고 할 수 있습니다. Q OS의 역할은 뭐죠? OS는..
[OS] 프로세스 & 쓰레드 프로세스란, 쓰레드란?* 프로세스 process : 컴퓨터에서 실행되고 있는 프로그램을 말함. CPU 스케줄링의 대상이 되는 task.* 쓰레드 thread: 프로세스 내 작업의 흐름. 멀티 프로세스 & 멀티 쓰레드말그대로 각각 여러 개의 프로세스와 쓰레드를 쓴다는 말. 둘 사이 특징이 다르므로, 이를 기억하자.그런데 CPU (정확히는 코어)의 수는 어차피 정해져 있는데, 멀티 프로세스든 쓰레드든 그게 뭐가 중요하지? 라고 생각할 수 있는데, 여러 개의 프로세스 혹은 쓰레드는 하나의 CPU를 정말 빠른 속도로 사용하고, 비켜줬다가, 다시 사용하는 것을 무한 반복한다. context switching. 그렇기 때문에 여러 개의 프로그램을, 마치 동시에 진행하는 것처럼 사용자에게 보여줄 수 있는 것. * 멀..
[OS] 메모리, 캐시, 운영체제의 메모리 관리 기본적으로 컴퓨터 구조를 다룰 때, CPU의 ALU가 연산을 시전하는 부분이라면 그 일련의 과정에 있어서 데이터를 저장하고 빼내는 등의, 일종의 창고 역할을 하는 부분이 필요한데, 그걸 넓은 의미에서의 메모리라고 한다.  메모리의 종류 종류로는 레지스터, 캐시(L1, L2, L3), RAM(주기억장치), 디스크(보조기억장치) 등이 있다. 저 순서대로 오른쪽으로 갈수록 더 많은 양의 데이터를 저장할 수 있지만, CPU로부터의 접근성이 떨어지고, 그렇기 때문에 가격도 싸진다.참고로 레지스터와 캐시의 일부(1은 항상, 2는 때때로)는 CPU 내부에 위치해 있다. 접근성이 최고인 셈. 각각을 알아보면, 1 레지스터: CPU가 즉시 사용할 수 있는 데이터를 저장하는 공간.2 캐시 메모리: CPU가 매우 빠르기 때..
API? RESTful API? 서버? 전공자인데 아직 서버가 뭔지 정확히 모르겠다고 하면 웃길 수 있으나 서버라는 이름만 자주 나오고 부분적으로만 등장할 뿐 교육과정에서 정확히 그게 뭔지 제대로 다뤄지지 않는다. 그래서 이참에 확실하게 이해해보려 한다. 서버란?서버의 "실체"를 이해하기 위해서는 하드웨어와 소프트웨어의 2가지 측면을 모두 고려해야 함.서버는 기본적으로 클라이언트에게 서비스를 제공 - 요청을 처리하고, 데이터를 관리 - 하는 시스템. 1 물리적 서버 Physical Server:서버는 직육면체 형태의 컴퓨터다. 그걸 모아서 위와 같이 다양한 형태로 쌓아둔다.데스크톱 본체와 유사하게 CPU, RAM, 디스크, NIC 등으로 이루어져 있지만, 일상 작업을 처리하는 용도인 데스크톱과는 다른 기능을 키운 컴퓨터다. 서버는 앞서 말했든..
[OS] 운영체제 기본 OS란?사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스.컴퓨터 하드웨어가 있고, 하드웨어를 사람이 사용하고자 할때 (어플리케이션을 통해 상호작용) 하드웨어와 사람 사이에서, 사람을 도와 하드웨어를 활용할 수 있게 도와주는 장치라고 생각하면 편하다.참고로 운영체제 중에 소프트웨어를 추가로 설치할 수 없는 것을 firmware라고 명명함. OS의 역할?OS의 역할은 4가지로 크게 분류:CPU 스케줄링과 프로세스 관리: CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리함.메모리 관리: 한정된 메모리를 어떤 프로세스에 얼마만큼 할당할지 관리함.디스크 파일 관리: 디스크 파일을 어떤 방법으로 보관할지 관리함.I/O 디바이스 관리: I/O 디바이스들 (마우스, 키보드, ..