본문 바로가기

Engineering WIKI322

퍼사드 패턴 (Facade Pattern) 개념 및 코드 예제 Facade는 "건물의 정면"을 의미하는 단어로 어떤 소프트웨어의 다른 커다란 코드 부분에 대하여 간략화된 인터페이스를 제공해주는 디자인 패턴을 의미합니다. 퍼사드 객체는 복잡한 소프트웨어 바깥쪽의 코드가 라이브러리의 안쪽 코드에 의존하는 일을 감소시켜 주고, 복잡한 소프트웨어를 사용 할 수 있게 간단한 인터페이스를 제공해줍니다. 동기 어떤 사람이 영화를 보고자 합니다. 영화를 보기 위해서는 다음과 같은 과정을 거치게 됩니다. 음료를 준비한다 → TV를 켠다 → 영화를 검색한다 → 영화를 결제한다 → 영화를 재생한다. public void view() { Beverage beverage = new Beverage("콜라"); Remote_Control remote= new Remote_Control();.. 2022. 12. 30.
Redis 뿌수기! Redis 는 무엇이며 언제 사용하는가? Redis 는 무엇인가? 시스템의 메모리를 사용하는 key, value 데이터 스토어입니다. 디스크까지 접근해서 데이터를 가져오는 방식이 아니라 메모리를 통해 데이터를 가져오는 방식이기에 RDB 보다 접근 속도가 빠릅니다. single 스레드로 동작하여 Atomic 을 보장합니다. Redis 는 언제 사용하는가? 디스크 I/O 가 빈번하게 발생할 때, 매번 디스크에 접근해 I/O 처리를 한다면 속도가 느릴 것입니다. 이를 해결하기 위해 Redis 를 이용해서 데이터를 캐싱해놓고 빈번하게 발생하는 요청을 처리하는 것입니다. 또한, 이렇게 빈번하게 데이터를 처리하고 RDB 나 NoSQL 에 데이터를 업데이트 하도록 설계할 수도 있습니다. 실제 사례를 들면, API 결.. 2022. 12. 30.
쿠키와 세션 그리고 JWT 🍪 쿠키 쿠키는 웹 사이트 서버에서 유저의 컴퓨터로 보내는 작은 임시 파일입니다. 해당 웹에 필요한 정보들을 가지고 있다가 필요한 이벤트에 데이터를 반환합니다. 처음 쿠키가 만들어진 건, 정확한 통계 값을 구하기 위해서 였다고 합니다. 방문자가 이전에도 왔던 방문자인지, 처음 온 방문자인지를 확인하기 위함이었다고 해요. 쿠키가 없던 이전에는 한 명의 유저가 index 페이지를 100번 reload 하면 100명이 방문했던 것으로 표현되었다고 해요. 방문자를 확인하는 데이터를 통해 우리는 이를 구분할 수 있게 된 거죠. 먹고 남은 쿠키 부스러기 마냥 작은 파일들이라 하여 cookie라는 이름이 붙었다고 합니다. 이렇게 만들어진 cookie는 단순히 통곗값만 내는 것으로 끝나지 않았습니다. 웹사이트에서 로그.. 2022. 12. 30.
Jenkins (젠킨스) 요약 젠킨스는 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴이다. CI(Continuous Integration) 툴 빌드는 서버에 올릴 수 있는 상태로 만드는 것을 빌드라고 한다. 빌드를 자동화 해주는 툴 서버에 올려서 사용자가 사용 할 수 있게 하는 것은 배포(Deploy)라고 한다. git에서 pull을 해서 build한 후 배포까지 하는 것이 하나의 Jenkins Project가 하는 일 버전관리시스템과 연동하여 자동화테스트를 수행 ⇒ 젠킨스를 사용하는 가장 큰 이유 중 하나 젠킨스 설치 및 구동 자바로 개발되었으며 서블릿 컨테이너 위에서 구동된다. 따라서, WAS인 Tomcat, Jetty등 서블릿 컨테이너를 설치하고 이 위에서 젠킨스 war파일로 구동. 각 OS별로 별도의 설치파일을 제공.. 2022. 12. 20.
HTTP 메소드 RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1 HTTP has been in use by the World-Wide Web global information initiative since 1990. This specification defines the protocol referred to as "HTTP/1.1", and is an update to RFC 2068. [STANDARDS-TRACK] datatracker.ietf.org 9가지 : GET, POST, PUT, DELETE, HEAD, OPTIONS, TRACE, CONNECT, (SEARCH) HTTP 메소드는 클라이언트가 웹 서버에게 사용자 요청의 목적이나 종류를 알리는 수단 이다. 최초의 H.. 2022. 12. 18.
소프트웨어 개발 방법론 - 애자일(Agile) 방법론 소프트웨어 개발 방법론 - 애자일(Agile) 방법론 애자일(Agile) 방법론은 구체적인 개발 프로세스가 아닌 개발 지침, 철학에 가깝다. 변화를 수용하고 협업과 제품의 빠른 인도를 강조하는 반복적 개발 방법 문서화보다 코드, 프로그램, 소프트웨어 자체를 중요시 함 요구사항의 변화는 불가피하며 이에 대응하는 것이 현실적이다. 기존의 개발 프로세스는 설계 기간이 길며 재작업 시 오버헤드가 크다. 환경의 빠른 변화에 대응하는 것이 중요하다. 애자일 선언문(Agile Manifesto) 🔗 공정과 도구보다 개인과 상호작용을 포괄적인 문서보다 작동하는 소프트웨어를 계약 협상보다 고객과의 협력을 계획을 따르기보다 변화에 대응하기를 요구사항이 바뀌기 쉬운 중소형의 비즈니스 시스템이나 전자 상거래 응용에 적합하다... 2022. 12. 18.