👩‍💻 개발개념

👩‍💻 개발개념

급수표 power of 2

급수표x2의 x제곱근사값메모리 요구량(바이트)7128  8256  1010241000(천)1K1665,536 64K201,048,5361,000,000(백만)1MB301,073,741,8241,000,000,000(십억)1GB324,294,967,296 4GB401,099,511,627,7761조1TB

👩‍💻 개발개념

캐싱 전략

캐싱 전략은 데이터 또는 연산의 결과를 임시로 저장하여 성능을 향상시키는 방법캐시를 효과적으로 사용하면 시스템 성능을 크게 향상시킬 수 있다.캐싱 전략을 선택할 때는 시스템의 특성과 요구 사항을 고려해야함각 전략은 장단점이 있으며, 적절한 전략을 선택함으로써 최적의 성능을 달성할 수 있음 1. Write-Through Cache   - 데이터가 캐시에 쓰일 때 동시에 데이터베이스에도 저장되는 방식   - 데이터 일관성이 보장되지만, 쓰기 성능이 다소 저하될 수 있음 2. Write-Back Cache (Write-Behind Cache)   - 데이터가 먼저 캐시에 쓰이고, 나중에 데이터베이스에 저장되는 방식   - 쓰기 성능은 높아지지만, 데이터 일관성 문제나 데이터 손실 위험이 있을 수 있음 3. R..

👩‍💻 개발개념

서버 구조도

단일 서버모든 컴포넌트가 한 대의 서버에서 실행되는 간단한 시스템부터 설계해 보자.웹, 앱, 데이터베이스, 캐시 등이 전부 서버 한 대에서 실행된다. 사용자는 api.mysite.com을 입력하여 웹 사이트에 접속한다.이러한 도메인 이름을 IP 주소로 변환해 주는 DNS를 거친다.2에서 반환된 IP 주소로 HTTP 요청이 전달된다.요청을 받은 웹 서버는 HTML 페이지나 JSON 형태의 응답을 반환한다.웹 애플리케이션비즈니스 로직, 데이터 저장 등을 처리하기 위해서는 자바, 파이썬 등을 사용하고 프레젠테이션 용으로는 HTML, 자바스크립트 등을 사용한다.모바일 앱모바일 앱과 웹 서버 간 통신을 위해서는 HTTP 프로토콜을 사용한다.HTTP 프로토콜을 통해서 반환될 응답 데이터의 포맷으로는 보통 JSON이..

👩‍💻 개발개념

HMAC과 RSA

HMAC(Hash-based Message Authentication Code)개념HMAC는 암호화 해시 함수와 비밀 키를 사용하여 메시지의 무결성과 인증을 보장하는 방식주로 메시지의 무결성을 확인하고, 송신자의 인증을 보장하기 위해 사용됨 특징무결성 보장: 메시지가 전송 중에 변경되지 않았음을 확인할 수 있음인증: 송신자의 신원을 확인할 수 있음비밀 키 사용: 대칭 키 암호화 방식으로, 송신자와 수신자가 동일한 비밀 키를 공유속도: 해시 함수의 속도에 따라 HMAC의 생성 및 검증 속도가 결정되며 보통 MD5, SHA-1, SHA-256 등의 해시 함수를 사용 작동원리메시지와 비밀 키를 결합해서 해시 값을 생성생성된 해시 값이 메시지와 함께 전송수신자는 동일한 비밀 키로 해시 값을 생성하여, 전송된 해..

👩‍💻 개발개념

직렬화와 역직렬화

HTTP에서는 JSON을, 자바에서는 객체를 사용서로 형식이 다르기 때문에 형식에 맞게 변환하는 작업이 필요직렬화? 자바 시스템 내부에서 사용되는 객체를 외부에서 사용하도록 데이터를 변환하는 작업역직렬화? 외부에서 사용하는 데이터를 자바의 객체 형태로 변환하는 작업

👩‍💻 개발개념

아키텍처와 의존성

1. 아키텍처(architecture)란?소프트웨어 시스템의 아키텍처란, 시스템을 구축했던 사람들이 만들어낸 시스템의 형태이다.그 모양은 시스템을 컴포넌트로 분할하는 방법, 분할된 컴포넌트를 배치하는 방법, 컴포넌트가 서로 의사소통하는 방식에 따라 정해진다.그리고 그 형태는 아키텍처 안에 담긴 소프트웨어 시스템이 쉽게 개발, 배포, 운영, 유지보수될 수 있도록 만들어진다. 우리는 흔히 '설계'한다고 하지만, 설계와 아키텍처의 경계는 명확히 구분할 수 없다. 아키텍처는 고수준의 무언가를, 설계는 저수준의 구조 또는 결정사항을 의미할 때가 많지만 실제 아키텍트가 하는 일을 살펴보면 이러한 구분은 무의미하다. 2. 아키텍처의 종류들레이어드 아키텍처(Layered architecture)헥사고날 아키텍처(Hex..

👩‍💻 개발개념

RESTful에 ful이 붙은 이유 & REST API URI 네이밍 컨벤션

1. RESTful이란?ChatGPT한테 'RESTful의 의미를 알려줘'라고 물어봤을 때의 답변 역시...똑똑하군... RESTful은 "Representational State Transfer"의 약자인 REST의 원칙을 따르는* 웹 서비스 디자인 패턴을 의미합니다. REST는 웹의 아키텍처 스타일 중 하나로, 클라이언트와 서버 간의 통신을 간단하고 확장 가능하게 만드는 것을 목표로 합니다. RESTful 웹 서비스는 이러한 REST 원칙을 구현하여 자원(리소스)을 표현하고 조작하는 방식을 따릅니다. * '따르는'에 집중해보자! REST의 주요 개념과 원칙은 다음과 같습니다: 자원(Resource) 중심: 웹 서비스의 모든 것은 자원으로 간주됩니다. 자원은 URI(Uniform Resource Ide..

👩‍💻 개발개념

좋은 객체 지향 설계의 5가지 원칙 (SOLID) 😏

[디자인 패턴의 아름다움] 3. 설계 원칙1) 단일 책임 원칙클래스와 모듈은 하나의 책임 또는 기능만을 가지고 있어야 한다. 즉, 거대하고 포괄적인 클래스를 설계하는 대신, 작은 단위와 단일 기능을 가진 클래스를 설계해야 한다. 예progfrog.tistory.com✍️ 개요SOLID란, 객체 지향 프로그래밍을 하면서 지켜야 하는 5대 원칙으로 각각 SRP(단일 책임 원칙), OCP(개방-폐쇄 원칙), LSP(리스코프 치환 원칙), ISP(인터페이스 분리 원칙), DIP(의존 역전 원칙)의 앞글자를 따서 만들어졌다. SOLID 원칙을 지키면 시간이 지나도 변경이 용이하고, 유지보수와 확장이 쉬운 소프트웨어를 개발하는데 도움이 되는 것으로 알려져 있다. 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목..

👩‍💻 개발개념

HTTP 상태코드

해당 게시글은 모든 개발자를 위한 HTTP 웹 기본 지식을 수강하며 정리한 내용입니다. 🚀 HTTP 상태코드 소개클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능1xx(Informational): 요청이 수신되어 처리 중2xx(Successful): 요청 정상 처리3xx(Redirection): 요청을 완료하려면 추가 행동이 필요4xx(Client Error): 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음5xx(Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함 만약, 클라이언트가 인식할 수 없는 상태코드를 서버가 반환한다면? 👉 클라이언트는 상위 상태코드로 해석해서 처리한다. ex) 299 ▶ 2xx로 생각하고 처리한다. 🚀 1xx - 요청이 수신..

👩‍💻 개발개념

엔티티와 값 타입

📢 안내해당 글은김영한 님의 JPA 프로그래밍 [9장 값 타입] 중 일부최범균 님의 도메인 주도 개발 시작하기 [1.6 엔티티와 밸류] 중 일부를 발췌하여 정리한 것입니다. 0. 들어가며Entity와 DTO*, VO*를 구분하는 다양한 글들이 많은데 이런 글들을 읽다 보면 이해가 잘 안 가는 부분들이 있다. 이것을 단순 개념으로 접근하기보다는, 데이터베이스의 테이블과 객체를 매핑해주는JPA에 대한 배경 지식이 있어야 아하! 하고 이해가 되는 지점이 있다는 것을 알게 되었다. 따라서, JPA 관점에서 이해하고, 글을 정리해 보았다 :) * DTO: Data Transfer Object, 데이터 교환을 위한 객체* VO:  Value Object, 값 객체 혹은 값 타입 배경지식 간단 정리JPAJava P..

프로그⸝⸝◜࿀◝ ⸝⸝
'👩‍💻 개발개념' 카테고리의 글 목록