본문 바로가기

기초 개념4

제네릭<Generic> 제네릭은 프로그래밍에서 타입(Type)의 안전성을 높이고 코드의 재사용성을 향상시키는 강력한 도구입니다. 제네릭을 사용함으로써, 개발자는 타입을 보다 유연하게 처리할 수 있으며, 동시에 컴파일 시간에 타입 체크를 강화할 수 있습니다. 제네릭이란 무엇인가? 제네릭은 클래스, 인터페이스, 또는 메소드가 다양한 타입의 객체들을 처리할 수 있도록 해줍니다. 이것은 코드를 작성할 때 구체적인 타입을 명시하지 않고, 타입 파라미터를 사용하여 나중에 해당 타입을 지정할 수 있게 해줍니다. 제네릭의 장점: 타입 안전성: 제네릭은 잘못된 타입의 객체가 사용되는 것을 컴파일 시점에서 방지합니다. 이는 런타임 오류를 줄여줍니다. 코드 재사용성: 동일한 코드를 다양한 타입에 대해 사용할 수 있어, 중복을 줄이고 재사용성을 높.. 2023. 11. 22.
`withCredentials`에 대한 설명 HTTP 요청에서 withCredentials 속성은 주로 AJAX 요청에서 사용되며, 이는 웹 브라우저의 Same-Origin Policy(같은 출처 정책)를 준수하면서도 쿠키, HTTP 인증, 클라이언트 SSL 인증 같은 자격 증명 정보를 포함한 요청을 보낼 수 있게 합니다. 기본적으로, XMLHttpRequest와 fetch는 크로스 도메인 요청에서 자격 증명 정보를 포함하지 않지만, withCredentials를 true로 설정하면 포함하게 됩니다. 예를 들어, 도메인 A에서 도메인 B로 AJAX 요청을 보낼 때 도메인 B의 쿠키를 전송하려면 withCredentials를 true로 설정해야 합니다. 이렇게 설정하면 응답에도 Access-Control-Allow-Credentials 헤더가 포함되.. 2023. 9. 12.
Eval 함수와 보안 문제 컴퓨터과학에서 코드는 일련의 명령어로 구성되어 컴퓨터에게 특정 작업을 지시합니다. 일반적으로 코드는 개발자에 의해 미리 작성되며, 프로그램 실행 시에는 해당 코드만 수행됩니다. 그런데 프로그래밍 언어 중 일부에는 "실행 시점"에 동적으로 코드를 평가하고 실행하는 기능을 제공하는데, 이를 eval 함수라고 합니다. 1. Eval 함수란? Python과 JavaScript에서 eval은 문자열 형태의 코드를 받아 해당 코드를 실행하는 함수입니다. # Python 예시 x = 10 y = 20 result = eval("x + y") print(result) # 30 // JavaScript 예시 let x = 10; let y = 20; let result = eval("x + y"); console.log.. 2023. 8. 29.
개발 시 사이드 이펙트(Side Effect)란? 사이드 이펙트는 프로그래밍에서 어떤 함수나 연산의 수행 결과로 시스템의 상태가 예상치 못하게 변경되는 현상을 말합니다. 순수 함수(pure function)는 같은 입력 값에 대해 항상 동일한 결과를 반환하고 사이드 이펙트를 일으키지 않습니다. 그러나 많은 함수는 내부 상태나 외부의 시스템 상태를 변경하는 동작을 포함하며, 이런 동작이 종종 사이드 이펙트를 초래합니다. 사이드 이펙트 예시: var globalVar = 0 fun addWithSideEffect(x: Int, y: Int): Int { globalVar += x return x + y } 위의 addWithSideEffect 함수는 두 숫자를 더하는 것 외에 전역 변수 globalVar의 값을 변경하는 사이드 이펙트를 갖습니다. Sprin.. 2023. 8. 24.