본문 바로가기
반응형

Computer Science/Others3

함수형 언어 함수형 패러다임을 따라가는 함수형 언어는 프로그래밍 가능한 모든 자료와 처리를 수학적 함수의 계산으로 취급하고, 모든 프로그래밍은 함수와 불변수(Immutable Variable)로만 나타냅니다. 함수형 언어는 절차 지향, 객체 지향과는 다르게 선언형 프로그램이으로 순서보다는 값과 함수의 실행 여부에만 초점을 둔 패러다임이기 때문입니다. 함수형 언어는 온전한 수학 대수 체계를 받을 수 없어서 람다 대수를 사용하여 구성하였기 때문에, 람다 표현식의 영향을 많이받았습니다. 객체지향 언어의 약한 결합력과 강한 응집력의 단점인 강한 응집력으로 인한 객체 내부에서의 값들과 메소드들 사이에 영향이 높고 이는 곧 코드가 깔끔하지 못한 결과를 가져오는데 함수형은 값들이 불변하고 메소드는 상태를 고려하지 않고 인자 값만.. 2024. 3. 27.
프로그래밍 언어와 디자인 패턴 프로그래밍 언어는 크게 분류했을 때 다음 3가지로 나뉩니다. 절차지향 언어 객체지향 언어 함수형 언어 절차지향 패러다임을 따르는 절차지향 언어는 가장 기본적인 방식으로 기계어, 어셈블리어가 속하며, 고급언어 중에서는 대표적으로 C언어가 있습니다. 절차지향 언어는 Turing Computable한 명제에 대해서는 순차, 분기, 반복, 참조 4가지로 구현이 가능하다는 점이 핵심입니다. 순차 방식은 프로그램에 실행 포인터가 존재하여 각 포인터에 있는 코드를 한줄씩 순서대로 실행시킵니다. 분기 방식은 프로그램의 실행 포인터가 임의의 상황에 다다랐을 때, 일부 내용을 넘기는 방식으로 다양한 상태를 만들고 이를 통해 다양한 프로그램을 생성합니다. 반복 방식은 프로그램의 실행 포인터를 조작하여 이미 실행한 내용으로 .. 2024. 3. 25.
공격 이번 포스트에서는 서비스를 운용함에 있어서 발생할 수 있는 공격들에 대해서 작성하겠습니다. 먼저 중요 정보 유출 취약점 (Credentials Leak) 입니다. 이 공격은, 중요한 정보들을 직접적으로 유출하여 유출된 정보를 토대로 공격하는 방법입니다. 깃허브와 같은 오픈소스 저장소에 안일하게 저장하게 될 경우, 이를 통해 개인정보와 같은 중요한 정보를 얻어 공격하는 케이스가 많습니다. 깃허브의 경우 이 방법을 방지하기 위해, .gitignore 로 지정하여 저장소에 올리지 않는 방법이 있습니다. 웹 개발을 하게될 경우, 데이터 베이스의 정보 등을 config에 저장하게 될 텐데 이를 유출되지 않게끔 신경써주는 것이 좋습니다. 다음으로 물리 침투 공격입니다. 이 방법은 말 그대로 물리적으로 대상 PC에 .. 2024. 3. 25.
반응형