전체 글 560

ES6에 대해서 아는 대로 설명해 주세요.

ES6에 대해서 아는 대로 설명해 주세요.프론트엔드와 관련된 질문이에요. ES6(ECMAScript 2015)는 자바스크립트의 최신 버전으로, 2015년에 공식 발표되었습니다. ES6는 코드의 가독성과 유지보수성을 높이고, 현대 웹 애플리케이션의 요구를 반영하기 위한 여러 기능들을 제공합니다. 주요 변경사항을 몇 가지 설명해 드리겠습니다. 첫째, let과 const 키워드가 추가됐습니다. let은 변수 선언, const는 상수 선언에 사용됩니다. var와 달리 let과 const는 블록 스코프를 가지므로 코드의 안정성이 더 높습니다. 또한, 변수 선언 이전에 접근했을 때 undefined가 할당되지 않고, ReferenceError가 발생한다는 점에서도 차이가 있습니다.둘째, 화살표 함수(Arrow Fu..

SOLID 원칙에 대해서 설명해 주세요.

SOLID 원칙에 대해서 설명해 주세요.백엔드와 관련된 질문이에요.SOLID 원칙은 객체지향 설계 5원칙이라고도 불리며, 각 원칙의 앞 글자를 따서 만들어졌습니다. 객체지향설계의 핵심 중 하나는 의존성을 관리하는 것인데요. 의존성을 잘 관리하기 위해서는 SOLID 원칙을 준수해야 합니다. 단일 책임 원칙(Single Responsibilty Principle) 은 클래스가 오직 하나의 목적이나 이유로만 변경되어야 한다는 것을 강조합니다. 여기서 “책임”이란 단순히 메서드의 개수를 뜻하지 않고, 특정 사용자나 기능 요구사항에 따라 소프트웨어의 변경 요청을 처리하는 역할을 의미합니다.즉, 클래스는 한 가지 변화의 이유만 가져야 하며, 이를 통해 변경이 발생했을 때 다른 기능에 영향을 덜 미치도록 설계됩니다...

DB Replication에 대해서 설명해주세요.

DB Replication이란? 🤔DB Replication은 하나의 데이터베이스(Source)에서 다른 데이터베이스(Replica)로 데이터를 복제하는 기술입니다. 쉽게 말해 원본 데이터의 '백업 친구들'을 만드는 과정이죠! DB Replication이 필요한 이유 🎯고가용성(High Availability) ⚡: 주 서버가 다운되어도 복제 서버가 대신 서비스 제공부하 분산(Load Balancing) 🔄: 읽기 작업을 여러 서버에 분산데이터 백업(Data Backup) 💾: 데이터 손실 방지지리적 분산(Geographic Distribution) 🌍: 전 세계 사용자에게 빠른 서비스 제공Replication 작동 방식 ⚙️MySQL을 예로 들면 복제 과정은 다음과 같습니다:기록(Write) ..

자바스크립트 Promise에 대해서 아는 대로 설명해주세요.

Promise란? 🤔Promise는 비동기 작업의 최종 완료(또는 실패)와 그 결과값을 나타내는 객체입니다. 쉽게 말해 "나중에 완료될 작업"에 대한 약속입니다.// API에서 데이터를 가져오는 Promise 예시const fetchUserData = (userId) => { return new Promise((resolve, reject) => { fetch(`/api/users/${userId}`) .then(response => { if (response.ok) resolve(response.json()); else reject(new Error('사용자 정보를 불러올 수 없습니다')); }) .catch(error => reject(er..

useEffect가 호출되는 시점에 대해 설명해 주세요.

useEffect가 호출되는 시점 이해하기 🚀React의 useEffect 훅은 컴포넌트 생명주기의 특정 시점에 자동으로 호출되는 강력한 도구입니다.마운트 시점 - 컴포넌트가 처음 나타날 때 📥컴포넌트가 화면에 처음 렌더링된 직후에 useEffect가 실행됩니다. 이 시점은 초기 데이터를 가져오거나 외부 API에 연결하기에 완벽한 타이밍입니다.function ServerStatusPanel() { const [servers, setServers] = useState([]); useEffect(() => { // 컴포넌트가 처음 나타날 때 서버 상태 데이터 가져오기 fetchServerStatus().then(data => setServers(data)); }, []); // 빈 배..

Record를 DTO로 사용하는 이유가 뭔가요?

Record를 DTO로 사용하는 이유가 뭔가요? Record는 Java 16에서 정식 출시된 특별한 유형의 클래스로 불변성(Immutable) 을 기본으로 합니다.기존의 클래스와 달리 모든 필드가 final 키워드로 선언되며, 객체 생성 후 변경할 수 없습니다. 또한 필드 선언만으로 자동으로 생성자, getter, equals(), hashCode(), toString() 등 메서드를 자동으로 생성해 주어 보일러 플레이트 코드를 줄일 수 있습니다. 이러한 특성으로 인해 멀티 스레드 환경에서 데이터가 의도치 않게 변경되지 않고 안전하게 전달할 수 있습니다.// 기존 클래스 기반 DTOpublic class MemberDto { private final String name; private final Str..

undefined와 null의 차이점에 대해서 설명해주세요.

undefined와 null의 차이점 쉽게 정리 ✨자바스크립트 프론트엔드 개발에서 자주 헷갈리는 undefined와 null! 둘 다 “값이 없음”을 뜻하지만, 의미와 사용법에 차이가 있어요. undefined란? 🤷‍♂️변수는 선언했지만 아직 값을 할당하지 않았을 때 자바스크립트가 자동으로 부여하는 값이에요.즉, “아직 값이 정해지지 않았다”는 상태를 의미합니다. null이란? 🚫개발자가 “여기는 일부러 비워둘 거야!”라고 명확하게 의도해서 직접 넣는 값이에요.“값이 없음을 명시적으로 표현”할 때 사용합니다.비교 연산자에서의 차이느슨한 비교(==)에서는 undefined == null이 true입니다.엄격한 비교(===)에서는 undefined !== null이므로 false가 나와요.메모리 관리 ..

HTTPS에 대해서 설명해주세요.

HTTPS에 대해서 설명해주세요.백엔드와 관련된 질문이에요.HTTP(Hypertext Transfer Protocol) 는 클라이언트와 서버 간 통신을 위한 통신 규약입니다. 하지만, HTTP는 암호화되지 않는 평문 데이터를 전송하기 때문에 제 3자가 정보를 조회할 수 있다는 위험이 있습니다. 이를 해결하기 위해서 HTTPS가 등장했습니다.HTTPS(Hyertext Transfer Protocol Secure) 는 HTTP에 데이터 암호화가 추가되었습니다. 암호화된 데이터를 전송하기 때문에 제 3자가 볼 수 없도록 할 수 있습니다.HTTPS는 어떻게 적용할 수 있나요?HTTPS를 적용하기 위해서는 인증된 기관(Certificate Authority, CA)에게 인증서를 발급받아야 합니다. CA에 인증서를..

시맨틱 마크업이란 무엇이며, 왜 중요한가요?

시맨틱 마크업이란 무엇이며, 왜 중요한가요?프론트엔드와 관련된 질문이에요.시맨틱 마크업은 HTML 요소를 사용하는 방식으로, 단순히 시각적 목적이 아닌 요소의 의미를 잘 나타내도록 작성하는 방식을 말합니다. 예를 들어, 와 같은 비시맨틱 태그가 아닌, , , , 같은 시맨틱 태그를 사용하여 문서 구조와 콘텐츠의 역할을 명확하게 하는 것입니다. 시맨틱 마크업이 중요한 이유는 크게 두 가지입니다.첫째, 접근성을 개선하기 위함입니다. 시맨틱 요소들은 스크린 리더와 같은 접근성 도구에서 콘텐츠의 구조를 더욱 잘 해석할 수 있게 해 주어 시각장애인이나 노인 등 다양한 사용자층이 사이트를 효과적으로 탐색할 수 있게 합니다. 이러한 요소를 올바르게 사용하면, 더 많은 사람들에게 접근 가능한 웹 환경을 제공할 수 ..

WAS와 웹 서버의 차이점은 무엇인가요?

WAS와 웹 서버의 차이점은 무엇인가요?백엔드와 관련된 질문이에요.웹 서버는 정적 컨텐츠(HTML, CSS, JS, 이미지 등)를 제공하는 역할을 수행합니다. 동적 컨텐츠 요청 시 요청을 WAS로 전달할 수도 있습니다. 대표적인 웹 서버로는 Apache, Nginx 등이 있습니다. 반면, 자바 진영에서 WAS(Web Application Server) 는 서블릿 컨테이너 기능을 제공하고, 동적 컨텐츠를 생성하거나, 애플리케이션 로직을 실행하는 데 특화되어 있습니다. 대표적인 WAS로는 Tomcat이 있습니다. 정리하자면, 웹 서버는 정적 컨텐츠 제공에 특화되어 있으며, WAS는 동적인 컨텐츠 생성과 데이터 처리에 특화되어 있습니다.WAS도 정적 컨텐츠를 제공할 수 있는데 웹 서버가 따로 필요한 이유는 무..