목록전체 글 (92)
백고등어 개발 블로그

웹 애플리케이션 보안은 백엔드 개발자가 반드시 알아야 할 필수 지식입니다. 한 번의 보안 사고로 회사 전체가 큰 타격을 받을 수 있기 때문에, 면접에서도 보안 관련 질문을 중요하게 다룹니다. 실무에서 자주 마주치는 보안 위협과 대응 방법을 정리해보겠습니다.1. OWASP Top 10에 대해 설명해주세요.답변: OWASP Top 10은 웹 애플리케이션에서 가장 위험한 보안 취약점 10가지를 정리한 국제 표준입니다. 매 3-4년마다 업데이트되는데, 최신 버전의 주요 항목들을 말씀드리겠습니다.첫 번째는 인젝션 공격입니다. SQL, NoSQL, OS 명령어 등의 악성 코드를 삽입하는 공격이에요. 예를 들어 로그인 폼에서 사용자명에 admin'; DROP TABLE users; --를 입력해서 데이터베이스를 삭제..

인메모리 캐시는 현대 웹 애플리케이션의 성능 향상에 필수적인 기술입니다. Redis와 Memcached는 가장 널리 사용되는 두 가지 인메모리 캐시 솔루션인데, 면접에서도 자주 비교 질문이 나와요. 각각의 특징과 적합한 사용 시나리오를 명확히 정리해보겠습니다.1. Redis와 Memcached의 기본 개념을 설명해주세요.Redis (Remote Dictionary Server):키-값 저장소이면서 동시에 다양한 자료구조를 지원하는 인메모리 데이터베이스단순한 캐시를 넘어서 데이터베이스, 메시지 브로커 역할도 수행영속성(Persistence) 지원으로 디스크에 데이터 저장 가능Memcached:고성능 분산 메모리 캐시 시스템단순한 키-값 저장에 특화메모리에만 데이터를 저장하는 순수 캐시도서관으로 비유하면, ..

데이터베이스 트랜잭션은 백엔드 개발에서 가장 중요한 개념 중 하나입니다. 데이터의 일관성과 무결성을 보장하는 핵심 메커니즘이죠. 면접에서도 자주 나오는 주제이므로 핵심 개념들을 확실히 정리해보겠습니다.1. 트랜잭션이란 무엇이고 왜 필요한가요?**트랜잭션(Transaction)**은 데이터베이스에서 수행되는 작업의 논리적 단위입니다. 여러 개의 연산을 하나의 단위로 묶어서 모두 성공하거나 모두 실패하도록 보장하는 메커니즘이에요.은행 계좌 이체 예시:A 계좌에서 10만원 출금B 계좌에 10만원 입금이 두 작업은 반드시 함께 성공하거나 함께 실패해야 합니다. 만약 1번만 성공하고 2번이 실패하면 돈이 사라지는 심각한 문제가 발생하죠.BEGIN TRANSACTION;UPDATE accounts SET balan..

REST API는 현대 웹 개발에서 가장 널리 사용되는 아키텍처 스타일입니다. 백엔드 개발자라면 반드시 알아야 할 필수 개념이며, 면접에서도 자주 다뤄지는 주제예요. 단순히 HTTP 메소드만 아는 것이 아니라, REST의 원칙과 실무에서의 활용법을 제대로 이해해보겠습니다.1. REST와 RESTful API란 무엇인가요?**REST(Representational State Transfer)**는 네트워크 아키텍처 원칙의 모음입니다. 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미해요.REST의 6가지 원칙:무상태성(Stateless): 각 요청은 독립적이며 서버는 클라이언트 상태를 저장하지 않음클라이언트-서버 구조: 역할이 명확히 분리됨캐시 가능(Cacheable): 응답은 캐시될 ..

JPA와 Hibernate는 자바 백엔드 개발에서 데이터베이스를 다룰 때 가장 널리 사용되는 기술입니다. 객체와 관계형 데이터베이스 사이의 불일치를 해결해주는 ORM 기술이죠. 면접에서도 자주 나오는 주제이므로 핵심 개념들을 확실히 정리해보겠습니다.1. JPA와 Hibernate의 관계는 무엇인가요?**JPA(Java Persistence API)**는 자바에서 ORM을 사용하기 위한 표준 명세입니다. 인터페이스와 애노테이션들을 정의해놓은 규약이라고 생각하면 돼요.Hibernate는 JPA 명세를 구현한 실제 라이브러리입니다. JPA를 구현한 다른 라이브러리로는 EclipseLink, OpenJPA 등이 있지만, Hibernate가 가장 널리 사용됩니다.자동차로 비유하면, JPA는 자동차의 설계도이고 H..