Computing and DB 🖥/Computer Science6 [디자인 패턴] 싱글톤 제 2장 - "싱글톤의 심화과정" 지난 시간에는 싱글톤의 개념과 기본적인 구현 방법 멀티 쓰레드 환경에서 thread - safe 하게 구현하기 그리고 이른 초기화에 대해서 알아보았습니다 (지난 챕터, 싱글톤 제 1장 보러 가기) 이번 시간에는 JAVA 에서 권장하는 방법들과 더불어 1 장에서 다뤘던 개념들의 단점들을 보완하기 위해 나온 방안들을 살펴보겠습니다 Double Checked Locking 멀티 쓰레드 환경에서 이른 초기화처럼 객체를 미리 생성하지 않으면서 synchronized 의 성능 이슈 또한 사전에 방지할 수 있는 기법입니다 Double Checked Locking public class GlobalSettings { private static volatile GlobalSettings instance; private .. 2024. 1. 25. [디자인 패턴] 싱글톤 제 1장 - "개념 및 멀티 쓰레드와 이른 초기화" 전역으로 공통되어야 하는 데이터가 담긴 인스턴스를 여러 개 생성한다면? 예를 들어 GlobalSettings 라는 클래스가 존재하고 PersonalSettings 에서 GlobalSettings 의 인스턴스를 여러 개 사용한다면 인스턴스의 일관성을 보장할 수 없고, 자원 낭비, 동기화 문제 등 여러 문제가 발생합니다 (GlobalSettings 는 글로벌 세팅으로 각 객체의 독립성이 요구되지 않는다는 가정) 문제가 되는 상황 예시 public class PersonalSettings { GlobalSettings gloSetOne = new GlobalSettings(); GlobalSettings gloSetTwo = new GlobalSettings(); boolean equalCheck = (glo.. 2024. 1. 24. 정적 콘텐츠(Static Content) & 동적 콘텐츠(Dynamic Content) 우리는 알게 모르게 웹서핑을 하면서 두 가지 형태의 콘텐츠를 이용하고 있다 모든 사용자에게 콘텐츠가 동일하게 부여되는 정적 콘텐츠(Static Content)와 사용자의 설정이나 선택사항에 따라 유동적으로 사용자 정보 기반의 맞춤 페이지가 부여되는 동적 콘텐츠(Dynamic Content) 정적 콘텐츠(Static Content)란? 서버에 미리 저장된 HTML, JS, CSS 등의 파일들을 그대로 응답으로 보내주는 것 따라서, 각기 다른 사용자들의 요청에 항상 동일한 결과를 반환한다 장점: 속도와 안정성, 보안에 용이 단점: 유연성 부족, 업데이트의 불편성 동적 콘텐츠(Dynamic Content)란? 누가, 무엇을, 어떻게 요청하는지에 따라 각각 다른 응답을 보내주는 것 따라서, 각기 다른 사용자들의.. 2024. 1. 12. Web Server 는 뭐고, WAS 는 도대체 뭐야? Web Server 와 WAS 의 차이를 명확하게 알고 계시나요? Web 서비스 구조(Web Service Architecture)에 대해서 남들에게 설명할 수 있으신가요? Web Server 란 HTTP 프로토콜을 기반으로 웹 브라우저를 통해 사용자의 HTTP 요청을 받고, 정적인 콘텐츠를 제공 (정적인 콘텐츠에 대한 설명 보러 가기) Web Server 의 기능 case 1: "정적인 콘텐츠" WAS 를 거치지 않고 바로 자원을 제공한다 case 2: "동적인 콘텐츠" 클라이언트의 요청(request)을 WAS 에 전달하고, WAS 가 처리한 결과를 다시 클라이언트에게 응답(response)한다 Web Server 의 예 ex) Apache HTTP Server, Nginx.. 2024. 1. 8. 테스트 코드 작성하기가 귀찮다고? 테스트 코드 작성이 귀찮으신가요? " 그러시면 안 됩니다... " 오늘은 테스트 코드를 작성해야하는 이유에 대해서 설명해 보겠습니다. TEST CODE 란? 개발한 기능이 의도한 대로 작동하는지, 개발 도중 생각하지 못했던 결함이 있는지 확인하기 위해 작성하는 코드 TEST CODE 의 장점 체계적이고 효율적인 개발 프로세스 코드의 동작의 이해를 돕는 문서의 역할 작성한 코드가 의도한 대로 작동하는지 검증 에러를 클라이언트보다 더 빨리 발견하고 수정 코드 수정이 필요할 경우, 안정적이고 유연하게 대응 리팩토링 시 기능 구현 결과가 변경되지는 않았는지 점검 (이 외에도 다양한 테스트 피라미드가 존재한다) TEST 의 종류 Unit Test(단위 테스트) 가장 작은 단위의 테스트이며, 오직 하나의 모듈을 기.. 2024. 1. 2. 캐시(cache)랑 쿠키(cookie)는 뭐가 다른 거야? 누구나 한 번쯤은 웹서핑을 하다 보면 쿠키 설정을 하라는 문구가 뜨거나. 이전 검색 기록들을 볼 수 있다거나, 광고들이 갑자기 내가 쿠팡에서 직전에 검색했던 상품들로 가득 찼던 경험이 있지 않은가 이것이 바로 쿠키(cookie)다. 쿠기는 크롬과 같은 브라우저에 저장되는 작은 텍스트 조각이며, 사용자의 인증을 도와주는 역할을 한다 만료기간이 존재하여 시간이 지나면 자동으로 삭제되지만, 개발자 도구에서 수정이나 삭제가 가능하며 제 3자 또한 조회할 수 있기 때문에 보안상 민감한 정보를 저장하기엔 부적절하다 따라서 남에게 탈취되거나 조작되어도 크게 문제가 되지 않는 정보들을 저장하면서 유저의 웹사이트 이용을 보다 편하게 해주는 역할이다 예를 들어, 다크 모드 설정 여부 자주 보는 웹툰 목록 등과 같은 간단한.. 2023. 12. 16. 이전 1 다음 728x90 반응형