본문 바로가기

Fundamental

(27)
[디자인 패턴] 1. 전략 패턴(Strategy Pattern) 전략/정책 패턴(Strategy Pattern)객체의 행위를 전략 또는 정책, 즉 상황에 따라 바꿔 끼워서 사용할 수 있도록 행위를 캡슐화하는 설계 패턴이다. 객체의 행위가 추후 변경되거나 추가될 가능성이 많을 때 효과적이다.오리 시뮬레이션 게임, SimUduck   어느 한 게임 회사에서 오리를 시뮬레이션 하는 게임을 개발 중이었는데, 다른 게임 개발사와 차별화 시키기 위해서 기존 오리들 객체 행위에 날아다니는 행위를 추가하기로 결정했다.   MarllarDuck, RedheadDuck과 같은 모든 구상 클래스들에 fly()를 추가하는 건 효율적이지 않으니, 상속의 특징을 활용해서 부모 클래스인 Duck 클래스에 fly()를 추가하면, 아주 효율적으로 모든 오리 객체들이 날아다니는 행위를 할 수 있을 ..
쿠키 vs localstorage 기본적으로 브라우저를 종료해도 데이터가 사라지지 않음 쿠키 사용자 디스크에 직접 저장 http request 시 함께 전달됨 단순 문자열로 저장됨 localstorage 브라우저 저장소에 저장됨 http request 시 함께 전달되지 않음 request 사이즈를 줄일 수 있음 객체 형태로 저장될 수 있음
개발 방법론 목차 Waterfall Agile DevOps Waterfall: 폭포수 전통적인 개발 방법론으로써, '요구사항 수집 > 분석 > 설계 > 개발 > 테스트 > 배포 > 유지보수' 단계를 한 번에 수행하여 시스템을 완성한다. 처음부터 계획한 일정대로 개발이 진행되기 때문에, 개발 기간에 어느 정도 잘 맞출 수 있지만, 모든 시스템의 설계와 개발을 한 번에 하기 때문에, 새로운 요구사항이나 변경 사항에 취약하다. 사내에서 자체 개발한 ERP, WMS, CMS는 폭포수 방법론과 모놀리식 아키텍쳐로 개발된 시스템의 대표적인 예이다. Agile: 애자일(민첩, 신속) 새로운 요구사항이나 변경 사항을 신속하게 반영하기 위한 개발 방법론으로써, 요구사항을 잘게 나누어 폭포수와 유사한 단계를 거치고, 빠르게 피드백을 ..
XSS와 CSRF의 차이점 잘 알려진 웹 취약점으로 XSS와 CSRF가 있는데, 이 둘이 헷갈리는 경우가 많아서 작성해 보았습니다. 1. XSS (Cross-Site Scripting) - Cross-Site: 서로 다른 사이트 - Scripting: 스크립트 코드 -> Cross Site Scripting: 다른(피싱) 사이트를 이용해 사용자의 정보를 탈취하기 위한 스크립트 코드 공격자가 이용자의 입력을 받는 취약한 웹 사이트에 스크립트를 삽입해서 자신이 관리하는 사이트로 사용자의 정보(쿠키, 세션 등)를 보내도록 유도하고, 공격자가 사용자의 권한을 획득하는 공격 방법입니다. 1. 공격자는 프로필 설명 란에 악성 스크립트를 몰래 삽입해 놓고, 사용자에게 친구 신청을 해서 악성 스크립트가 포함된 프로필을 열람하도록 유도합니다. 2..
WordPress.org에 AWS S3 + Cloudfront 적용하기 들어가며... WordPress.org에서 홈페이지를 만들면 Latency가 커서 홈페이지의 로딩 속도가 많이 느려짐을 알게 되었습니다. 따라서 AWS의 CloudFront CDN을 사용해서 Latency를 줄이도록 설정해 봤습니다. 1. AWS CloudFront? Amazon CloudFront는 html, css, js 및 이미지 파일과 같은 정적 및 동적 웹 콘텐츠를 사용자에게 더 빨리 배포하도록 지원하는 웹 서비스입니다. CloudFront는 엣지 로케이션이라고 하는 데이터 센터의 전 세계 네트워크를 통해 콘텐츠를 제공합니다. 따라서, 사용자가 서버에 요청하면 지연 시간이 가장 낮은 엣지 로케이션으로 요청이 라우팅되므로 최적의 성능으로 콘텐츠가 제공될 수 있습니다. 2. S3 버킷 생성 1) A..
WordPress.org - Hostinger DB 연동하기 1. 개발 환경 Hostinger에서 도메인 호스팅 WordPress Server 사용 Hostinger에서 제공하는 DB(Maria DB) 사용 2. DB 및 계정 생성 3. DB 관리자 페이지 이동 4. DB 테이블 생성 5. WordPress의 config 파일 수정 Hostinger Dashboard에서 File manager 선택 public_html 디렉터리에서 wp-config.php 파일을 더블 클릭 Database를 생성할 때 입력했던 DB 이름, 유저명, 유저 비밀번호를 삽입 위의 wp-config.php 파일은 워드프레스에서 전역적으로 사용되는 설정 파일이므로, 오류가 나면 사이트가 정상적으로 동작하지 않으니 주의해야 합니다. 이렇게 설정하면 DB 연결 정보가 Global 상수로 정..
WordPress.org - 사용자 정의 REST API 추가하기 1. Theme 파일 수정 위와 같이, functions.php에 아래 내용을 추가해서 rest_api_init 이벤트를 후킹합니다. add_action('rest_api_init', function () { register_rest_route( 'Avada-Child', 'submit', array( 'methods' => 'POST', 'callback' => 'post_submit' )); }); add_action : WordPress에서 특정 훅을 추가할 때 사용하는 함수입니다. 여기서 '훅'은 특정 action이 발생했을 때 이를 가로채는 행위를 말합니다. register_rest_route : REST API 경로를 등록하는 함수입니다. 이제 register_rest_route 콜백에 등록한..
WEB에서 사용되는 이미지 포맷들 들어가며 웹에서 사용되는 이미지는 여러가지가 있습니다. 기존의 이미지 포맷인 BMP, JPG, PNG, GIF와 구글이 개발한 WEBP, W3C에서 개발한 SVG가 뭔지 간단히 알아보려 합니다. 목차 1. BMP 2. JPG 3. PNG 4. GIF 5. WEBP 6. SVG 1. BMP 비트맵 디지털 그림을 저장하는 데 사용되는 이미지 포맷입니다. 원본 그대로 저장되기 때문에 이미지 원본에 손실은 없지만, 파일을 압축하지 않기 때문에 다른 포맷들에 비해 용량이 가장 큽니다. 2. JPG(=JPEG) 높은 압축률로 용량이 작아서 가장 널리 사용되는 이미지 포맷입니다. 반대로 압축률이 크기 때문에 이미지 원본에 손실이 큰 단점이 있습니다. 3. PNG JPG에 비해 이미지 원본에 손실이 적고, BMP 보다..