728x90
반응형
SMALL

백/back-end 8

[운영체제] 프로세스(Process)와 스레드(Thread)

운영체제를 공부하면 꼭 배우는 내용입니다. 프로세스와 스레드에 대해 배우고 cpu 스케쥴링이든 동기화든 다양하게 배웁니다. 이번에 간단하게 정리하여 비교하도록 하겠습니다! 프로세스와 스레드는 운영체제에서 프로그램이 실행되는 두가지 주요 방법입니다. 비슷해 보일 수 있지만 각각의 특징과 사용 방식에는 차이점이 있습니다. Process란? 프로세스(Process)는 실행 중인 프로그램의 인스턴스를 의미합니다. 각 프로세스에는 독립적인 메모리 공간(코드, 데이터, 스택 등)과 시스템 리소스(CPU 시간, I/O 디바이스 등)가 할당됩니다. 프로세스들은 서로 독립적으로 실행되며, 한 프로세서에서 다른 프로세서의 메모리 영역을 직접 접근할 수 없습니다. 대신 IPC(Inter Process Communicatio..

백/back-end 2023.11.20

[백엔드] 소프트웨어 디자인 패턴, MVC 패턴이란?

스프링을 시작하면 가장 먼저 배우는 것이 자바 이구 그 다음으로 MVC 패턴입니다. 어떤 내용인지 정리하고 프로젝트를 시작하겠습니다! MVC 패턴이란? MVC(Model-View-Controller) 패턴은 소프트웨어 설계 분야에서 널리 사용되는 디자인 패턴으로, 애플리케이션을 모델, 뷰, 컨트롤러라는 세 부분으로 나누어 구성하는 방법론입니다. MVC 패턴은 1970년대에 Trygve Reenskaug이 제안하였으며 Smalltalk 프로그래밍 언어에서 처음 사용되었습니다. 모델-뷰-컨트롤러로 구성되어 있습니다. 모델(Model) : 애플리케이션의 핵심적인 비지니스 로직을 담당합니다. 데이터 베이스와 직접적으로 연결되어 데이터를 처리하고, 사용자가 요청하는 데이터 연산을 수행합니다. 뷰(View) : 사..

백/back-end 2023.11.12

[네트워크] 네트워크(Network) 정의와 장단점, 데이터 교환 방식 정리

노트북을 키고 구글을 들어갈 때 네트워크 연결 확인을 해야하죠. 그 네트워크에 대해 제가 이해한 만큼 작성해보겠습니다. 네트워크(Network)란? 네트워크(Network)란 컴퓨터 간의 데이터 교환을 가능하게 하는 시스템을 말합니다. Net + Work의 합성어로 컴퓨터들이 통신기술을 이용하여 그물망 처럼 연결된 통신 이용 형태를 의미합니다. 자바는 풍부한 네트워킹 API를 제공하여, 개발자들이 컴퓨터 네트워크를 통해 데이터를 전송하고, 웹 서버와 상호작용하며, 원격으로 다른 컴퓨터를 제어하는 등의 작업을 할 수 있게 해줍니다. 네트워크의 종류 LAN은 Local Area Network의 줄임말로 근거리 영역 네트워크입니다. 우리가 집이나 학교, 회사에서 사용하는 공유를 중심으로 컴퓨터나 노트북, 인터..

백/back-end 2023.10.25

[운영체제] Synchronize(동기화)와 Deadlock

Synchronize(동기화) Synchronize는 동기화라고 영문번역을 할 수 있습니다. 그러면 동기화란 무엇인지 알아야 겠죠? 동기화란 시스템을 동시에 작동하기 위해 여러 사건들을 조화시키는 것을 말합니다. 즉 여러 작업을 동시작업 하기 위해서 조정해주는 과정을 동기화 하는 것입니다. 컴퓨터공학적으로 접근했을 때 동기화란, 여러 프로세스나 스레드가 동시에 공유자원에 접근하려고 할 때, 데이터의 일관성을 보장하기 위해 그들 사이의 실행 순서를 제어하는 기법입니다. 여러 작업들이 충돌이 일어나지 않도록 조정하는 게 동기화라는 것입니다. 예를 들어, 두 개의 스레드가 같은 메모리 영역에 쓰기 작업을 시도한다면, 어떤 순서로 작업이 이루어지느냐에 따라 결과가 크게 달라질 수 있습니다. 이런 상황에서 동기화..

백/back-end 2023.10.22

[운영체제] Memory란?

Memory란? 메모리란 컴퓨터에서 정보를 처리하기 위해 일시적으로 정보를 보관하는 장치입니다. 하드웨어 적으로 메모리는 컴퓨터 메모리라고 알려져 있는 주기억장치인 RAM이라고도 합니다. 하드디스크에 보관된 정보는 전원이 꺼져도 사라지지 않고 보관되지만 휘발성 메모리에 올라간 정보는 전원이 꺼지면 모두 사라집니다. 메모리 종류 1. RAM (Random Access Memory) RAM은 컴퓨터가 실행 중인 프로그램과 현재 처리 중인 데이터를 임시로 저장하는 메모리입니다. 이 메모리에 있는 데이터에는 CPU가 빠르게 접근할 수 있으므로, 컴퓨터의 성능에 큰 영향을 미칩니다. RAM은 휘발성 메모리로, 전원이 꺼지면 그 안의 모든 정보가 사라집니다. 2. ROM (Read Only Memory) ROM은 ..

백/back-end 2023.10.22

[운영체제] CPU Scheduling이란?

취업난인 지금,, 채용 사이트를 보니까 웬만해서는 모두 백엔드 개발자를 찾고 있더라고요,, 프론트 엔드 개발자는 적고, 프론트 프로젝트는 많이 해봤는데 거의 비슷한것 같기도 해서 이제 백엔드도 공부할 겁니다! 가볍게 기본적으로 알아야하는 개념들을 정리해서 올릴 거고, 개인 프로젝트를 실행하면서 실무 코딩을 해보려고 합니다..! 공부는 제로베이스에서 제공한 백엔드 로드맵을 토대로 공부하겠습니다 CPU란? 일단 CPU가 무엇인지 알아야 겠죠? CPU는 중앙처리장치입니다. 중앙처리장치의 역할은 서버의 핵심 계산 장치인 하드웨어 구성 요소입니다. 서버 및 기타 스마트 장치는 데이터를 디지털 신호로 변환하고 이에 대한 수학적 연산을 수행합니다. 신호를 처리하고 컴퓨팅을 가능하게 하는 기본 구성 요소입니다. 즉 모..

백/back-end 2023.10.21

[백엔드]백엔드 개발자가 알아야 하는 보안 관련 내용

백엔드 개발자가 알아야 하는 보안 관련 내용 인증(Authentication)과 인가(Authorization) : 사용자의 신원을 확인하는 인증과 해당 사용자에게 적절한 권한 부여하는 인가는 보안의 핵심 요소입니다. 일반적으로 이는 세션, 토큰, OAuth 등 다양한 기술을 통해 구현됩니다. SQL Injection : SQL Injection은 공격자가 악의적인 SQL 코드를 주입하여 데이터베이스를 조작하려고 시도하는 공격입니다. 이를 방지하기 위해서는 입력값 검증, 파라미터화된 쿼리 사용 등이 필요합니다. Cross-Site Scripting(XSS) : XSS는 공격자가 웹 사이트에 악성 스크립트를 주입하려고 시도하는 공격입니다. 이를 방지 하기 위해 출력 데이터의 적절한 이스케이프(escape)..

백/back-end 2023.10.21

[보안] Security의 정의와 Security 프레임워크의 종류(Spring Security, Apache Shiro, OAuth/OAuth2, OpenID Connect 등)

백엔드 개발자 라면 보안문제를 해결하기 위한 통신을 주로 개발하거나 유지보수 할 것입니다. 이번에는 Security에 대해 알아보도록 하겠습니다. Security란? Security란 보안이라는 영문 뜻을 가지고 있습니다. 이를 컴퓨터공학에 접목하면 프로젝트에서 사용자의 인증 처리 및 리소스의 접근 제어에 활용되는 기술입니다. 보안을 강화하기 위한 여러 프레임워크가 있습니다. 그 중 하나가 Spring Security라는 것이 있습니다. Security 3가지 요소 기밀성(Confidentiality) : 정보가 인가된 사용자만이 접근할 수 있도록 하는 것입니다. 이는 암호화, 접근 제어 목록(ACL), 토큰 기반 인증 등 다양한 방법으로 달성될 수 있습니다. 무결성(Integrity) : 데이터가 원래..

백/back-end 2023.10.20
728x90