728x90
반응형
[로드맵] Web Security2024-12-17 10:27:16웹 보안은 데이터 기밀성, 무결성 및 가용성을 보장하기 위해 웹 애플리케이션을 위협과 취약성으로부터 보호하는 것을 포함한다. 주요 관행에는 강력한 인증 및 권한 부여 매커니즘, 안전한 데이터 전송을 위한 암호화(예: SSL/TLS) 사용, SQL 주입 및 크로스 사이트 스크립팅(XSS)과 같은 공격을 방지하기 위한 사용자 입력 검증이 포함된다. 보안 코딩 관행, 효과적인 세션 관리, 정기적인 업데이트 및 패치는 보안을 유지하는데 필수적이다. 또한 침투 테스트 및 취약성 평가를 포함한 지속적인 보안 테스트는 잠재적인 약점을 식별하고 해결하여 애플리케이션을 보호하고 사용자 신뢰를 유지하는데 도움이 된다. MD5더보기MD5(Message-Digest Algorithm 5)는 널리 사용되는 암호화 해시 함수로,..
equals와 hashCode는 왜 함께 재정의해야 할까요?2024-12-16 18:38:30equals와 hashCode 메서드는 객체의 동등성 비교와 해시값 생성을 위해서 사용할 수 있습니다. 하지만, 함께 재정의하지 않는다면 예상치 못한 결과를 만들 수 있습니다. 가령, 해시값을 사용하는 자료구조(HashSet, HashMap..)을 사용할 때 문제가 발생할 수 있습니다.class EqualsHashCodeTest { @Test @DisplayName("equals만 정의하면 HashSet이 제대로 동작하지 않는다.") void test() { // 아래 2개는 같은 구독자 Subscribe subscribe1 = new Subscribe("team.maeilmail@gmail.com", "backend"); Subscribe subsc..
[로드맵] Memcached2024-12-16 18:03:36Memcached는 범용 분산 메모리 캐싱 시스템이다. 종종 외부 데이터 소스(예: 데이터베이스 또는 API)를 읽어야 하는 횟수를 줄이기 위해 RAM에 데이터와 객체를 캐싱하여 동적 데이터베이스 구동 웹사이트의 속도를 높이는 데 사용된다.Memchached는 무료 오픈 소스 소프트웨어로, 개정된 BSD 라이선스에 따라 라이선스가 부여된다. Memcached는 Unix와 유사한 운영체제(Linux 및 macOS)와 Microsoft Windows에서 실행된다. 라이브러리에 따라 달라진다. Memcached의 API는 여러 머신에 분산된 매우 큰 해시 테이블을 제공한다. 테이블이 가득 차면 후속 삽입으로 인해 오래된 데이터가 가장 최근에 사용되지 않은(LRU) 순서로 제거된다. Memcached를 사용하는..
백준 1260번: 그래프 탐색 (DFS와 BFS)2024-12-14 01:25:54문제 설명https://www.acmicpc.net/problem/1260백준 1260번 문제는 주어진 그래프에 대해 깊이 우선 탐색(DFS)과 너비 우선 탐색(BFS)을 수행하는 문제입니다. 입력으로 정점의 개수, 간선의 개수, 시작 정점을 받고, 그래프의 간선 정보를 이용해 탐색 결과를 출력합니다. 문제 해결 전략그래프 표현:그래프는 인접 리스트 방식으로 표현합니다.Map>를 사용하여 각 정점에 대한 인접한 정점 리스트를 저장합니다.탐색 알고리즘 구현:DFS는 재귀를 통해 구현하고, BFS는 큐를 사용하여 구현합니다.두 알고리즘 모두 방문한 정점을 기록하여 중복 방문을 방지합니다.입력 및 출력:표준 입력을 통해 그래프 정보를 읽고, 탐색 결과를 표준 출력으로 작성합니다. 코드import java.io..
JPA에서 ID 생성 전략에 대해 설명해주세요.2024-11-29 10:21:34JPA에서 ID를 생성하기 위해서는 직접 할당과 자동 할당을 사용할 수 있습니다. 직접 할당은 @Id어노테이션만을 사용하여 Id값을 직접 할당하는 방식입니다. 반면, 자동 할당은 @Id와 @GeneratedValue를 함께 사용해서 원하는 키 생성 전략을 선택하는 방식입니다. @GeneratedValue의 stretagy 옵션을 통해 생성 전략을 설정할 수 있는데, 여기에 올 수 있는 값인 GenerationType는 다음과 같습니다.@Target({ElementType.METHOD, ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) public @interface GeneratedValue { GenerationType strategy() ..
[로드맵] Redis2024-11-29 10:10:31Redis는 속도와 다양성으로 유명한 오픈소스 인메모리 데이터 구조 저장소이다. 문자열, 목록, 집합, 해시, 정렬된 집합을 포함한 다양한 데이터 유형을 지원하고 캐싱, 세션 관리, 실시간 분석, 메시지 브로커링과 같은 기능을 제공한다. Redis는 키-값 저장소로 작동하여 빠른 읽기 및 쓰기 작업을 허용하며 종종 애플리케이션의 성능과 확장성을 향상시키는 데 사용된다. 디스크에 데이터를 저장하는 지속성 옵션, 고가용성을 위한 복제, 수평적 확장을 위한 클러스터링을 지원한다. Redis는 데이터에 대한 저지연 액세스와 높은 처리량 성능이 필요한 시나리오에 널리 사용된다.
로그와 메트릭을 설명해주세요.2024-11-28 09:48:46로그는 서버가 동작할 때 서버의 상태와 동작 정보를 시간 경과에 따라 기록된 결과입니다. 로그는 시스템의 오류와 문제들을 쉽게 찾아낼 수 있도록 도와줍니다. 반면, 메트릭은 시스템의 성능과 상태에 대한 통계적인 정보를 의미합니다. 메트릭을 잘 수집하면 시스템의 현재 상태를 손쉽게 파악할 수 있고, 사업 현황에 관한 유용한 정보를 얻을 수 있습니다. 가령, 메트릭은 DAU, Retension, CPU 사용량, 메모리 사용량 등이 있습니다.로그와 메트릭을 수집해 보신 적이 있나요? 🤔아래부터는 예시로 생각해주세요! 각자 진행하신 프로젝트 상황에 맞는 답변을 생각해 주세요. 😀스프링 부트 액추에이터를 사용해 메트릭을 생성하고 프로메테우스에 저장한 다음 그라파나로 시각화한 경험이 있습니다. 수집한 지표는 ..
[로드맵] Server Side2024-11-28 09:46:19server side 캐싱은 자주 액세스하는 데이터를 서버의 메모리에 저장하여 반복적인 데이터 검색이나 계산의 필요성을 줄임으로써 애플리케이션 성능을 개선하는 데 사용되는 기술이다. 이 접근 방식은 응답 시간을 단축하고 데이터 베이스 및 기타 백엔드 서비스의 부하를 줄이는데 도움이 된다. 일반적인 방법으로는 데이터베이스 쿼리 결과, HTML 조각 및 API 응답을 캐싱하는 것이 있다. 인기 있는 서버 측 캐싱 도구와 기술로는 Redis, Memcached 및 웹 프레임워크의 기본 제공 캐싱 메커니즘이 있다. 캐싱 된 콘텐츠를 효율적으로 관리하고 제공함으로써 server side 캐싱은 애플리케이션의 확장성과 응답성을 향상시킨다. ref) Redisref) Memcached
728x90
반응형