본문 바로가기

분류 전체보기

(170)
[매일메일] 다중 서버에서 세션 기반 인증을 사용했을 때 문제점? (BE.250131) 2025. 1. 31. 23:31 세션불일치다중 서버 기반에서 세션 기반 인증을 사용하면 세션 불일치 발생함예시)1. 서버 A,B를 동시 운영하면, 로드밸런서는 사용자 요청을 상황에 맞게 A,B 중 한 곳으로 전달2. 유효한 로그인 요청이 A 서버로 처음 도착하면 사용자 세션 정보는 A서버에 저장3. 사용자 또 다른 요청이 로드 밸런서 B로 도착하면, 사용자 세션 정보가 없기 떄문에 유효하지 않은 요청이 됨 세션 불일치 해결법1. Sticky Session(스티키 세션)📌개념한 사용자의 모든 요청을 동일한 서버로 보냄최초 요청이 특정 서버(A)로 전달되면 이후 모든 요청도 반드시 A로 가도록 로드 밸런서가 트래픽을 고정함 ✔구현IP 해시(사용자 IP 주소를 해싱해 특정 서버로 라우팅)세션 쿠키 기반(최초 요청 시 특정 서버 선택 후, ..
[매일메일] 함수 선언식과 함수 표현식의 차이점? (FE.250131) 2025. 1. 31. 23:31 함수 선언식이름이 있는 함수자바스크립트 엔진이 코드를 실행하기 전에 메모리에 로드되므로, 호이스팅 발생함함수 선언식으로 정의된 함수는 코드 내 어디서든 호출할 수 있음console.log(add(2, 3)); // 5function add(a, b) { return a + b;}  함수 표현식변수에 익명 함수를 할당함함수 표현식은 호이스팅이 되지 않아 변수에 할당된 이후에만 호출할 수 있음console.log(multiply(2, 3)); // not defined 에러 발생const multiply = function (a, b) { return a * b;}; + 호이스팅이 뭔가요?이와 관련된 이 블로그 다른 글: 자바스크립트의 호이스팅 https://developer-dreamer.tis..
[매일메일] SOLID 원칙이란? (BE.250130) 2025. 1. 30. 23:49 SOLID 원칙=객체지향 설계 5원칙, 각 원칙의 앞 글자를 따서 만들어짐객체지향설계 핵심은 의존성을 잘 관리하는 것임 ✅Single Responsibility Principle(SRP): 단일 책임 원칙클래스가 오직 하나의 목적이나 이유로만 변경되어야 함.여러 책임이 한 클래스에 있으면 한 기능이 변경될 때 다른 기능도 영향 받음.Responsibility(책임)은 특정 사용자나 기능 요구사항에 따라 소프트웨어의 변경 요청을 처리하는 역할을 의미함 📌SRP를 위반한 코드class User { constructor(name, email) { this.name = name; this.email = email; } saveToDatabase() { // DB 저장 로직 (데이터 관리 ..
[매일메일] DB Replication이란? (BE.250129) 2025. 1. 30. 23:15 DB Replication데이터베이스 고가용성과 데이터 안정성을 보장하기 위해 널리 활용되는 핵심 기술대규모 어플리케이션 환경에서 데이터의 지속적인 가용성과 신뢰성이 매우 중요함원본(Source) 서버와 복제(Replica) 서버 간의 데이터 동기화는 필수임 바이너리 로그(Binary log)를 저장하는 방식은?Replication 매커니즘:Source 서버에서 발생하는 모든 데이터 변경사항을 Replica 서버로 복제함. 두 서버 데이터의 일관성 유지.Binary log:Source 서버에서 실행된 모든 데이터 변경 쿼리를 기록함. Replication은 Binary log를 기반으로 이뤄짐 => MySQL에서는 Row, Statement, Mixed 세 가지 방식으로 Binary log를 저장함 Ro..
[매일메일] 자바스크립트 ES6 버전이란? (FE.250130) 2025. 1. 30. 22:42 ES6(ECMAScript 2015): 2015년에 공식 발표된 자바스크립트의 최신 버전코드 가독성과 유지보수성을 높이고, 현대 웹 어플리케이션의 요구를 반영하기 위한 여러 기능 제공 1. let과 const 키워드가 추가됨let: 변수 선언, const: 상수 선언var(함수 스코프)과 다르게 let/const는 블록 스코프를 가져 코드의 안정성이 높음.변수 선언 이전에 접근했을 때 undefined가 할당되지 않고, ReferenceError가 발생함(이 블로그 관련 글: 자바스크립트의 호이스팅) https://developer-dreamer.tistory.com/113)키워드재할당 가능 여부블록 스코프선언 전 접근var가능없음(함수 스코프)undefinedlet가능있음ReferenceErrorcon..
🌟[매일메일] 브라우저 렌더링 파이프라인이란? (FE.241224/241213) 2025. 1. 29. 00:42 브라우저 렌더링 파이프라인이란?브라우저가 웹페이지를 화면에 표시하기 위해 거치는 과정 [1단계] DOM 생성브라우저가 HTML 파일을 받으면, byte 단위로 읽기 시작함브라우저의 HTML 파서(Parser)는 byte를 문자(character)로 변환하고, 이 문자를 다시 HTML 토큰으로 변환함HTML 토큰은 각 HTML 태그와 그 안에 포함된 텍스트, 속성 등을 의미함 HTML 토큰이 생성되면, 브라우저는 이를 기반으로 DOM 트리를 생성함.DOM 트리: HTML 문서 구조를 트리 형태로 표현한 것. 각 태그가 node가 되어 부모-자식 관계 형성함 [2단계] CSSOM 생성브라우저는 CSS 파일을 파싱(parsing)함.CSS 파일은 byte로 전송되므로, 브라우저는 이를 문자로 변환하고 CSS ..
[매일메일] Record를 VO가 아닌 DTO로 사용하는 이유? (BE.250128) 2025. 1. 29. 00:20 Record란?Java 16에서 정식 출시된 특별한 클래스 유형기존 클래스 생성 시 반복적으로 작성하던 보일러플레이트 코드를 줄이는 데 중점을 둠자동으로 생성자, getter, equals(), hashCode(), toString() 메서드 생성함public record User(String name, String email, int age) {} VO(Value Object)란?도메인 모델 내에서 특정 개념이나 값을 표현하는 객체객체 간의 값 기반 비교를 지원하며, 값이 동일하면 같은 객체로 간주함비즈니스 로직과 밀접하게 연관되어 있으며, 특정 값에 대한 제약 조건이나 유효성 검증 로직을 포함함 Coordinates라는 이름의 VO를 구현해, (x,y) 좌표 값의 유효성을 검증하거나, 좌표를 이동시키..
🌟[매일메일] useEffect란? useLayoutEffect와 차이 (FE.250113/250128) 2025. 1. 28. 23:47 useEffectuseLayoutEffect실행 시점랜더링이 완료되는 시점(렌더링 후 화면에 직접적인 영향 없음)랜더링 후 DOM이 업데이트 되기 직전(화면이 그려지기 전)동기/비동기비동기적동기적예시사용자 데이터를 API에서 가져옴(데이터 렌더링 후 화면 업데이트)이벤트 리스너를 추가함DOM 크기를 측정해서 다른 요소 위치 조정(요소 높이 측정해 레이아웃 높이 조정)코드useEffect(()=> {  fetchData().then(data=>setData(data));},[]);useLayoutEffect(()=>{const height=ref.current.offsetHeight;setHeight(height);},[]);참고기본적으로 사용너무 많이 실행되면 렌더링 느려짐 useEffect 호출 시점은..

728x90