https://github.com/SeolSongWoo/WebStudyProject GitHub - SeolSongWoo/SampleOAuth: wwwwww. Contribute to SeolSongWoo/SampleOAuth development by creating an account on GitHub.github.com 디바운싱이란?디바운싱이란 사용자가 이벤트를 몇 번이나 발생 시키든 이벤트 발생을 멈추고 지정된 시간까지 지난 후에야 이벤트가 한번만 실행 되도록 하는 기법이다. let timer_id; function debouncing(func) { if(timer_id) { clearTimeout(timer_id); ..
분류 전체보기
서론 RDBMS에서는두 개이 상의 테이블을 결합하여 하나의 결과의 집합을 만들때 조인 알고리즘을 사용하게된다. 이러한 조인 알고리즘은 대부분의 주요 관계형 데이터베이스(RDBMS)에서 사용되는 일반적인 알고리즘이다. 왜 알아야하는가?RDBMS는 옵티마이저라는 핵심 엔진이 있다. 옵티마이저는 SQL문을 수행할 최적의 처리 경로를 생성해주는 엔진이다.이에 따라 옵티마이저는 SQL문에 대한 실행 계획을 세운 뒤 시스템 통계 정보를 활용하여 각 실행 계획의 예상 비용을 산정한 후 각 실행계획을 비교해서 최고의 효율을 가지는 쿼리를 수행한다! 이 실행 계획에서는 옵티마이저가 사용할 조인 알고리즘을 보여준다. 하지만, 주의할 점이 있다. 옵티마이저의 성능은 점차 향상되고 있지만 결코 만능은 아니다. 따라서, 우리는..
서론아래 글은 JAVA 언어로 배우는 디자인 패턴 입문: 쉽게 배우는 GoF의 23가지 디자인 패턴에 나오는 내용들을 바탕으로 작성 되었습니다 :) 디자인 패턴은 클래스 라이브러리 자체가 아니다!디자인 패턴은 특정 문제를 해결하기 위한 최적의 방법을 정형화한 개념이나 템플릿이지, 코드 그 자체가 아니다. 따라서 디자인 패턴은 클래스 라이브러리가 아니라 소프트웨어 설계의 모범 사례와 같은 역할을 한다!즉, 디자인 패턴은 부품이 어떻게 조립되어 있는지, 개별 부품이 어떻게 관련되어 큰 기능을 하는지 표현하는 것이다! 클래스 라이브러리 안에서 디자인 패턴이 사용된다!디자인 패턴은 클래스 라이브러리 자체는 아니지만, 많은 Java 표준 라이브러리에서 활용되고 있다! 즉, 디자인 패턴들에 대해서 알아두면 해당 ..
필요성예를 들어, 하나의 조직에서 애플리케이션을 개발했는데, 이 애플리케이션의 규모가 상당하다고 생각해보자. 그럼 단순히 개발을 하고, 테스트를 진행하며, 빌드를 한 후, 배포를 하는데만 시간이 꽤나 오래걸리게된다. 게다가 이 애플리케이션은 한 사람이 관리하는 것이 아닌, 몇십명으로 구성된 하나의 조직이 관리한다. 따라서 이 조직은 애플리케이션의 수정본을 하나로 합치는 것부터 배포까지 걸리는 시간이 오래 걸려 긴 배포 주기를 가지게 된다. 이렇게 되면 사용자의 피드백을 빠르게 반영할 수 없을 뿐더러, 배포 과정 속에서 문제가 발생할 가능성도 높다. 구축 목적개발자는 소스 코드를 수정하고, 코드 컨벤션을 준수했는지, 코드가 잘 작동하는지 Pull Request를 보내 자동으로 확인합니다.변경된 소스 코드에..
표준 DOM 이벤트에서 정의한 이벤트 흐름엔 3가지 단계가 있다.캡처링 단계 - 이벤트가 하위 요소로 전파되는 단계타깃 단계 - 이벤트가 실제 타깃 요소에 전달되는 단계버블링 단계 - 이벤트가 상위 요소로 전파되는 단계버블링클릭!//버튼을 클릭하면 div에 할당한핸들러가 동작!why? div에 할당한 핸들러가 동작하는가? 버블링버블링의 원리한 요소에 이벤트가 발생하면, 이 요소에 할당된 핸들러가 동작하고, 이어서 부모 요소의 핸들러가 동작한다.가장 최상단의 조상 요소를 만날 때까지 이 과정이 반복되면서 요소 각각에 할당된 핸들러가 동작하게된다.FORM DIV P //P 클릭시, p -> div -> form 순으로 출력//div 클릭시 div -> form 순으로 출력// form 클릭시 fo..
첫 디자인 패턴에 대한 설명으로 팩토리 패턴에 대해서 설명하겠다! 팩토리 패턴이란?팩토리 패턴은 객체 생성에 관련된 디자인 패턴으로, 객체 생성의 책임 클라이언트 코드에서 분리하여 코드의 유연성과 확장성을 높이는 디자인 패턴이다!아래에 간단한 샘플 예재를 봐보자.public interface Car { void drive();}public class Sedan implements Car { @Override public void drive() { System.out.println("Sedan is driving"); }}public class SUV implements Car { @Override public void drive() { System..
https://www.youtube.com/watch?v=6WZ6S-qmtqYByteByteGo의 API 보안 강화를 위한 12가지 팁 위 영상은 ByteByteGo에서 제시한 12가지 API 보안을 강화하는 전략에 대한 영상이다.영상에서 소개한 그 방법 12가지를 정리해보았다! 1) Use HTTPSHTTPS란?HTTPS는 HTTP에 SSL/TLS 보안 프로토콜을 적용한 것으로 데이터가 전송되는 동안 암호화되어, 클라이어느와 서버 간에 안전하게 데이터를 전송할 수 있도록 해준다.암호화는 데이터가 도난, 도청(Eavesdropping), 변조(Man-in-the-Middle,MiTM) 되는 것을 방지하며, 이는 사용자의 개인정보, 로그인 자격증명 및 기타 민감한 정보를 안전하게 유지하는 역할을 한다.언..
회원가입이나 로그인이 필요한곳 어디든 Google, Naver, Kakao, twiter등 외부 계정을 기반으로 간편히 회원가입 및 로그인 할 수 있는 웹,앱 어플리케이션을 쉽게 찾아볼 수 있다. 이때 사용 되는 프로토콜을 OAuth라한다, 단순히 로그인뿐만이 아니라 예를 들어 Google로 로그인하면 API를 통해 연동된 Calendar 정보를 가져와 사용자에게 보여줄수 있다. [OAuth란?]OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다. (위키백과) [OAuth 참여자]OAuth 동작에 관여하는 참여자는 크게 세 가지로 구분할 수 있..