본문 바로가기

728x90
반응형
CSP란 ? CSP는 Content Security Policy로 웹 애플리케이션에서 XSS(Cross-Site-Scripting) 및 데이터 삽입 공격을 방지하기 위해서 사용하는 보안 기능이다. CSP는 브라우저가 웹 페이지에 로드할 수 있는 리소스 종류와 출처를 제한하도록 명시하는 HTTP응답헤더나 태그를 통해 설정된다.CSP의 주요 목적은 악성 스크립트의 실행을 방지하고, 신뢰할 수 없는 리소스 로드 차단 그리고 데이터 탈취 및 세션 하이재킹을 방어하는 것이다.CSP 보안 정책은 xss와 같은 보안 취약점을 예방하고, 리소스 로드 제한으로 데이터 유출 방지를 할 수 있지만, 초기설정이 복잡해지거나 기존 사이트에 적용할 경우 호환성 문제가 발생할 수 있다. 그리고 개발 과정에서 외부 플러그인을 이용할 때도 CSP..
HandlerMethod란? HandlerMethod는 Spring Framework에서 사용되는 클래스 중 하나로, Spring MVC가 HTTP 요청을 처리할 때 매핑된 컨트롤러 메서드를 캡슐화하는 객체이다. Spring MVC는 사용자가 요청한 URL을 처리하기 위해 컨트롤러 클래스의 특정 메서드와 매핑을 하고, 이 매핑된 메서드를 HandlerMethod 객체로 관리한다.HTTP요청을 처리할 때, HandlerMethod 객체를 통해 해당 메서드를 호출하여 실제 비즈니스 로직에 실행하고, 요청 매핑, 메서드 실행 전후 로직처리 등 다양한 기능과 쉽게 연결 될 수 있도록 설계되어 HandlerMethod를 사용하면 유용하다.보통 사용되는 곳은 DispatcherServlet과 HandlerMapping, HandlerInter..
URI, URN, URL URI는 인터넷 자원을 식별하기 위한 체계이다. 자원이 어떤것인지, 어디에 있는지 나타내기 위한 표준화된 식별자로 이해하면 된다.Uniform: 리소스 식별하는 통일된 방식 Resource: 자원, URI로 식별할 수 있는 모든 것Identifier: 다른 항목과 구분하는데 필요한 정보 URI는 스킴(Scheme), 자원식별자 두 가지 요소로 구성되어있다.1. 스킴(Scheme)자원에 접근하는 방법이나 프로토콜을 정의한다.(ex : http, https, ftp, mailto, file)2. 자원 식별자자원의 이름 또는 위치를 지정한다.세부적인 경로나 이름을 포함할 수 있다. URI를 좀 더 자세히 살펴보면, 이런 형식을 따른다.:///?#  : http, https, ftp 등을 의미한다. : 권한 부..
ERD(Entity-Relationship Diagram) 설계 방법과 팁 ERD 설계 방법효율적인 데이터베이스 설계를 위한 ERD 작성법과 활용에 대해 작성해보려고한다.1. ERD란 무엇인가?ERD(Entity-Relationship Diagram)는 데이터베이스 설계의 기초가 되는 다이어그램으로, 데이터와 데이터 간의 관계를 시각적으로 표현한다. 이는 데이터베이스 구조를 이해하고 설계하는 데 필수적인 도구이다.ERD는 보통 아래와 같은 구성 요소를 포함한다.Entity (엔티티): 테이블로 변환될 데이터의 집합Attribute (속성): 엔티티가 가지는 특성(컬럼)Relationship (관계): 엔티티 간의 상호작용2. ERD 작성 단계효율적인 ERD 작성을 위해 다음 순서를 따르는 것이 좋다.2.1 요구 사항 분석애플리케이션이 처리해야 할 데이터를 정의한다.예를 들어, ..
티스토리 소스코드 이쁘게 표시하는 방법! 소스코드와 설명에 대해서 같이 작성하면 위의 사진처럼 구분이 잘 되지 않아 가독성이 너무 떨어진다이에 대한 해결방법은! 티스토리 자체에 있다!!! 1. 내 블로그 > 관리 > 플러그인 2. Syntax Highlight 검색 및 적용 본인이 원하는 스타일의 테마를 선택하여 적용하면 끝!!!!!스타일은 아래 예시 참고하면 좋다!!!테마 : 기본테마 : Atom One Dark테마 : Atom One Light테마 : Github테마 : Monokal테마 : Darcula테마 : Visual Studio테마 : Xcode 참고 : https://notice.tistory.com/2483
for/while 반복문 VS streamAPI 뭐가 더 좋을까? 로직을 구현하다보면 반복문을 작성할 때 우리가 흔히 알고있는 for, while과 같은 반복문과 streamAPI 둘 중 어떤걸 사용하는게 좋을까? 이러한 궁금증이 생겨서 찾아보았다. 1. 반복문 (for, while)전통적인 반복문으로 코드가 데이터 처리 흐름을 일일이 제어한다.로프 변수를 사용하여 데이터에 접근한다.명령형 프로그래밍방식으로 어떻게 처리할지에 대해 표현한다.List names = List.of("Alice", "Bob", "Charlie");List result = new ArrayList();for (String name : names) { if (name.startsWith("A")) { result.add(name.toUpperCase()); }}System..
자바 Stream API , stream() , 자바 반복문 Stream API란?Java의 Stream API는 List, Map, Set과 같은 컬렉션 이나 배열과 같은 데이터 소스를 처리하기 위한 선언적 프로그래밍이다. 이를 통해서 데이터의 순차적, 병렬적 처리를 수행하기 쉽다.여기서 선언적 프로그래밍이라고 하면! 무엇 중심의 코드로 데이터 처리 의도를 간단하게 표현하고, 메서드 체이닝을 통해 작업 단계를 명확히 나열하고 마지막으로 명령형 코드처럼 루프를 돌면서 상태를 변경하지 않는 프로그래밍 스타일이다.(참고 : 2025.01.09 - [개발 이모저모] - 명령형 프로그래밍, 선언적 프로그래밍이란?) Stream API의 특징for/while 과 같은 반목문 대신 stream()을 사용하여 간결한 코드를 작성할 수 있다.메서드 체이닝을 하여 처리단계를 구성..
명령형 프로그래밍, 선언적 프로그래밍이란? 명령형 프로그래밍과 선언적 프로그래밍이라는 것은 대비되는 방식으로, 같은 결과를 내더라도 표현,구현방식에 대비가 된다. 1. 명령형 프로그래밍 (Imperative Programming)어떻게(How)를 정의: 문제를 해결하기 위한 절차를 상세히 기술한다.프로그램의 상태(state)를 변경하며 작업을 수행한다.루프와 조건문을 많이 사용한다. 예시 : 명령형 방식으로 리스트에서 짝수만 필터링 (숫자를 하나씩 반복하면서 조건에 따라 직접 처리)List numbers = List.of(1, 2, 3, 4, 5);List evenNumbers = new ArrayList();for (int number : numbers) { if (number % 2 == 0) { evenNumbers.add..
랜덤키 생성하기, SecureRandom() 웹 개발을 하다보면, 보안 키를 생성해야하는 경우가 있다.그래서 랜덤키를 생성해주는 class를 생성하여 어디서든 접근하여 키를 쉽게 생성할 수 있도록 했다.클래스 정의public class KeyGenerationUtil { private final String CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; /** * 랜덤키 생성 * sessionToken, authToken에 사용 * @param length * @return */ public String generateSecureRandomString(int length) { SecureRa..
StringUtils.hasText 함수 StringUtils.hasText는 Spring Framework에서 제공하는 유틸리티 메서드로, 문자열이 비어 있지 않고 공백이 아닌 문자(텍스트)를 포함하고 있는지를 확인하는 함수이다. (org.springframework.util.StringUtils 클래스에 포함)public static boolean hasText(@Nullable String str)반환값은, 문자열이 비어 있지 않고 공백 외의 텍스트를 포함하고 있으면 true, 그렇지 않으면 false를 반환한다.예시:1. 문자열에 텍스트가 있는 경우String str = "Hello World";System.out.println(StringUtils.hasText(str)); // 출력: true 2. 문자열이 공백으로만 이루어진 경우S..

728x90
반응형