👽 Observer Pattern 옵저버 패턴(Observer Pattern)은 어떤 이벤트가 일어나는 것을 감시하는 패턴을 의미한다. 함수로 직접 요청한 적 없지만 시스템에 의해 발생하는 동작들을 이벤트라 하는데, 이러한 이벤트들을 감시하여 이벤트가 발생할 때마다 미리 정의해 둔 어떠한 동작을 즉각 수행하게 해 주는 프로그래밍 패턴을 옵저버 패턴이라 한다. 예시로 A 버튼이 클릭될 때마다 화면에 ‘안녕’을 출력하는 동작을 들 수 있다. 옵저버 패턴을 활용하면 다른 객체의 상태 변화를 별도의 함수 호출 없이 즉각적으로 알 수 있기 때문에, 이벤트에 대한 처리를 자주 해야 하는 프로그램이라면 매우 효율적인 프로그램을 작성할 수 있다. Model의 상태가 변경되면 이를 구독하고 있는 View의 렌더링 함수(..
[Tistory] A/B테스트, 코호트분석, AARRR분석, RFM, 에어플로우, LTV 코호트, 산업별 리텐션롤링 리텐션, 그로스해킹, 마케팅 가설검정
A/B테스트, 코호트분석, AARRR분석, RFM, 에어플로우, LTV 코호트, 산업별 리텐션롤링 리텐션, 그로스해킹, 마케팅 가설검정 A/B 테스트(프로그램 있음) https://www.oracle.com/kr/cx/marketing/what-is-ab-testing/ https://www.beusable.net/blog/?p=2854 https://brunch.co.kr/@beusable/3 https://brunch.co.kr/@digitalnative/19 https://playinpap.github.io/interpreting-a/b-test-results-false-positives/ https://yozm.wishket.com/magazine/detail/897/ https://blog.pe..
[Tistory] [WEB기본] Servlet & JSP(EL, JSTL)
Servlet : 서블릿이란 클라이언트가 어떠한 요청을 하면 그에 대한 결과를 다시 전송 1. 동작방식 사용자(클라이언트)가 URL을 입력하면 HTTP Request가 Servlet Container로 전송합니다. 요청을 전송받은 Servlet Container는 HttpServletRequest, HttpServletResponse 객체를 생성합니다. web.xml을 기반으로 사용자가 요청한 URL이 어느 서블릿에 대한 요청인지 찾습니다. 해당 서블릿에서 service메소드를 호출한 후 클리아언트의 GET, POST여부에 따라 doGet() 또는 doPost()를 호출합니다. doGet() or doPost() 메소드는 동적 페이지를 생성한 후 HttpServletResponse객체에 응답을 보냅니다…
[Tistory] javascript
참조 타입과 동일성 테스트 let temp1 = [1,2,3]; let temp2 = [1,2,3]; temp1 === temp2 –> false 이유 : js에서 새롭게 만들어진 배열은 특정 주소값이 등록되어(즉, 배열의 고유한 주소인 참조를 갖게 됨.), temp1과 temp2의 주소값이 달라 false가 나옴. let nums = [1,2,3]; let nums2 = nums; nums === nums2 –> true 이유 : 이땐 nums 배열 자체를 nums2에 할당해줬기 때문에 메모리에서 같은 것을 참조하게 된다. 즉, 둘은 연결되어 있기 때문에 nums를 push, pop, shift(앞에서 뺌), unshift(앞에서 넣음)을 하면 nums2에도 똑같이 반영되는 것을 알 수 있다.(역도..
[Tistory] 어릴때 가난했던 자는 권력을 잡으면 부패하기 쉽다.
이명박, 박정희, 나폴레옹…이들의 공통점은 뭘까? 한마디로 별볼일 없거나 가난한 집안에 태어나 오직 자기 능력만으로 자수성가하여 입지전적인 지위에 오른 사람들이다. 물론 또 공통적으로 몰락 역시 급격했는데, 모두 권력 쟁취후의 부패 혹은 관리 실패로 권좌를 오래 유지하지 못하거나 말년이 좋지 못했던 인간들이다. 심리학책에서 읽은 건데 어릴때 가난했던 자수성가형 인물일수록 권력을 쟁취한 후에는 빠르게 부패하기 쉽다고 한다. 어릴때 유복하지 못한 한이 맺혔기 때문일까, 아니면 집안에 힘이 없어서 권력과 돈이 없는 비참함을 누구보다 잘 알기 때문일까? 그것도 아니라면 중이 고기맛을 알면 정신 못차린다고 오랜기간의 궁박함에서 오는 보상심리때문에 나중에는 돈과 권력을 더 밝히는 사람으로 변하는 것일까? 그마저..
[Tistory] [알고리즘] 그래프와 트리, 전위순회, 중위순회, 후위순회& 백준(트리 순회)
그래프 그래프는 현상이나 사물을 정점(Vertex) 또는 노드(Node), 간선(Edge)으로 표현하기 위해 사용한다. – 노드(Node) : 위치를 말함, 정점(Vertex)라고도 함 – 간선(Edge) : 위치 간의 관계를 표시한 선으로 노드를 연결한 선을 뜻함(Link 또는 Branch라고도 함) – 인접 정점(Adjacent Vertext) : 간선으로 직접 연결된 Vertex(또는 Node) 1) 무방향 그래프(undirected graph) – 방향이 없는 그래프로 간선을 통해 노드는 양방향으로 갈 수 있음 – 보통 노드 A,B가 연결되어 있을 경우 (A,B) 또는 (B,A)로 표기 2) 방향 그래프(directed graph) – 간선에 방향이 있는 그래프로 방향이 가르키는 곳으로만 갈 수 ..
[Tistory] 230327
📌웹페이지가 브라우저에 랜더링되는 과정을 설명해주세요. 렌더링이란? 서버로부터 HTML, CSS, JavaScript 등 작성한 파일을 받아 브라우저에 뿌려주는 것. 파싱 (Parsing) 프로그래밍 언어의 문법에 맞게 작성된 텍스트 문서를 읽어 들여 실행하기 위해 텍스트 문서의 문자열을 토큰으로 분해하고, 토근에 문법적 의미와 구조를 반영하여 트리 구조의 자료구조인 파스 트리를 생성하는 일련의 과정. 쉽게 말해, 브라우저가 코드를 이해하고 사용할 수 있는 구조로 변환하는 것 파싱 결과는 문서 구조를 나타내는 노드 트리인데 파싱 트리(parse tree) 또는 문법 트리(syntax tree)라고 부름. 렌더링 과정 1. 서버로부터 넘겨받은 HTML, CSS 파일 다운 2. DOM / CSSOM 생성 :..
[Tistory] 미드 시트콤 추천 (1부)
1. 브루클린 나인-나인 스트리밍 서비스 넷플릭스 개요 미국의 시트콤. 2013년 9월 FOX에서 첫 전파를 탔습니다. 2018년 봄까지 방영된 뒤 제작 중단되었다가, NBC에서 한 시즌을 더 제작하여 2019년에 방영했습니다. 뉴욕 브루클린의 99번 관할서라는 가상의 NYPD 관할서에서 벌어지는 좌충우돌을 다룹니다. 경찰이 나오는 형사물이긴 하지만 실제로는 경찰이 나오는 코미디가 더 적당한 표현, 99 관할서 형사 팀원들이 새로 부임한 서장을 모시게 되면서 이야기가 시작됩니다. 딱히 주연, 조연 가릴 것 없는 등장인물들의 개성 넘치는 캐릭터 설정과 코믹한 연기가 좋은 반응을 얻고 있습니다. 한국에서는 아는 사람만 아는 드라마였으나 넷플릭스에서 정식 서비스 되면서 가볍게 즐기기 좋은 드라마인 덕에 팬층이..
[Tistory] const로 배열, 객체에 요소나 속성을 추가할 수 있는 이유, useRef는 언제 필요할까
1. 배열, 객체를 const로 선언했는데 요소나 속성을 추가할 수 있는 이유에 대해서 설명해주세요 const 키워드는 변수에 할당된 값을 변경할 수 없게 만듭니다. 하지만 배열이나 객체에 요소나 속성을 추가하는 것은 해당 변수에 새로운 값을 할당하는 것이 아니라, 변수가 참조하는 메모리 영역에서 값이 변경되는 것입니다. 이러한 경우에는 const로 선언된 배열이나 객체도 요소나 속성을 추가할 수 있습니다. ex) 배열에 요소 추가 const arr = [1, 2, 3]; arr.push(4); // [1, 2, 3, 4] 위 예제에서 const로 선언된 arr 변수는 변경할 수 없습니다. 하지만 push 메서드를 사용하여 배열의 요소를 추가할 수 있습니다. 이는 push 메서드가 배열 자체를 변경하기 ..
[Tistory] [ Android Studio ] 2자리 코드를 이용한 뷰에 투명도 적용하기
안드로이드 스튜디오에서 2자리 코드를 입력하여 뷰에 투명도를 설정하는 방법에 대해 알아보도록 하겠습니다. 위 코드처럼 완전 연두색을 나타내는 뷰의 투명도를 설정하기 위해서 따로 투명도를 설정하는 것이 아니android:background = “”에서 영문과 숫자로 이뤄진 2자리 코드를 넣어야 합니다. 투명도를 나타내는 2자리 코드는 아래와 같습니다. 100% — FF 99% — FC 98% — FA 97% — F7 96% — F5 95% — F2 94% — F0 93% — ED 92% — EB 91% — E8 90% — E6 89% — E3 88% — E0 87% — DE 86% — DB 85% — D9 84% — D6 83% — D4 82% — D1 81% — CF 80% — CC 79% — C9 7..