참고 : https://velog.io/@bae_mung/%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4-%EA%B5%AC%EC%A1%B0-Composite-Pattern, https://github.com/gyoogle/tech-i
1. 옵저버 패턴 > ⛳ 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에게 notify()되며 자동으로 내용이 update()되는 방식. 다수에게 상태를 전달해주는(=상태를 가지고 있는) 와 내용을 갱신받는(=의존성을 가지고 있는) 로 나눌 수 있다. 사
상위클래스(추상클래스)에서 템플릿을 제공하고 이를 상속받은 하위 클래스가 구체적인 로직을 작성하는 패턴사용방식AbstractClass(추상 클래스) : 템플릿 메소드를 구현하고, 템플릿 메소드에서 돌아가는 추상 메소드를 선언한다. 이 추상 메소드는 하위 클래스인 Con
📢 패턴의 개수가 5개 이상이 되어서..두 개씩 묶어서 포스팅하겠습니다. 1. 어댑터 패턴 >* '기존의 시스템을 수정하지 않고, 어뎁터를 활용하여 유연하게 해결하자!'라는 컨셉만 알면 된다. * 용도 : 클래스를 바로 사용할 수 없는 경우가 있다. (다른 곳에서
🙌 상속이란, 상속(Inheritance)란 하위 클래스가 상위클래스의 특성을 재정의한 것을 말한다. 부모 클래스의 메서드를 오버라이딩하여 자식에 맞추어 재사용하는 등, 상당이 많이 쓰이면서도 활용성이 높다. 상속의 단점 구현 상속(인터페이스 상속이 아닌)은 코드 재
CSRF Cross Site Request Forgery의 줄임말이다. *참고 : https://github.com/gyoogle/tech-interview-for-developer/blob/master/Web/CSRF%20%26%20XSS.md
일종의 설계 기법이자 방법이다. 효율적인 코드를 만들기 위한 방법론으로 말하기도 한다. 과거의 소프트웨어 개발 과정에서 발견된 설계의 노하우를 축적하여 그 방법에 이름을 붙이고 이후에 재사용하기 좋은 형태로 특정 규약을 만들어 정리한 것이다. 따라서 특정한 상황에서 발
네이티브 앱 당근마켓, 카카오뱅크, 스타벅스 앱 등... 모바일 운영체제의 종류는 구글의 안드로이드 SDK를 이용한 JAVA(코틀린)와 애플의 iOS기반 SDK를 이용한 Swift언어 두 가지가 있다. 각 모바일 운영체제에 최적화된 프레임워크를 사용하여 개발한 앱
📌 미리 알면 좋은 지식 Rendering : 보통 HTML 코드를 웹 브라우저가 읽어들여서 브라우저 상에 보여주는 행위. 따라서 뒤에 나올 CSR은 웹 브라우저가 읽어들일 HTML코드를 클라이언트측에서 보내주며, SSR은 HTML코드를 서버측에게 보내준다. SPA(
Stream API란, 자바는 객체지향 언어이기 때문에 함수형 프로그래밍이 불가능하다. 그래서 배열이나 데이터를 정렬된 상태로 출력하고자 할 때, 원본의 데이터가 직접 정렬이 되어야만했다. 따라서 아래의 코드와 같이 처리해야만 했다. 하지만 Stream API와
상황에 따라 필요한 로그를 보여주기 위해서 로그 정의시 사용하는 level을 구분한다.Logging level을 정의함으로써 얼마나 해당 정보가 중요한지를 나타낸다. 총 8단계를 구성되며, ALL < TRACE < DEBUG < INFO < WAR
⛳ API KEY / OAuth / JWT 인증 방식에 대해 알아보겠습니다. 1. API KEY REST API를 요청할 때, HTTP 헤더에 Authorization 정보를 추가하여 인증받을 수 있다. API를 요청한 계정의 소유자를 확인하는데 필수적인 절차이다.
🤔 들어가기 전에.. C/C++에서는 메모리누수(Memory Leak)을 막기 위해 객체를 생성한 후, 사용하지 않는 메모리는 프로그래머가 직접 해제해주어야 했습니다. 하지만 JAVA에서는 JVM이 구성된 JRE(Java Runtime Environment)가 제공되
Error와 Exception의 차이 프로그램이 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상저으로 종료되는 경우를 프로그램 오류라 하며, 프로그램 오류에는 Error와 Exception이 있다. Error 컴파일 시 문법적인 오류와 런타임 시 nullpoin
JVM이란 > Jav Virtual Machine으로, 시스템 메모리를 관리하면서, 자바 기반 애플리케이션을 위해 이식 가능한 실행 환경을 제공한다. 보통 어떤 기기상에서 실행되고 있는 프로세스, 특히 자바 앱에 대한 리소스를 대표하고 통제하는 서버를 지칭한다.
CS-JAVA 고유 락(Intrinsic Lock)자바 동기화의 가시성(visibility)문제 가시성 문제는 스레드가 변경한 값이 메인 메모리에 저장되지 않아, 다른 스레드가 이 값을 볼 수 없는 상황을 말한다. 여러 개의 스레드가 동시에 같은 작업을 수행하지 않는
✨ 프로그램이 실행되면 프로세스가 되고, 프로세스에서 여러 개의 스레드를 생성하여 작업을 수행한다. > #### 📍 미리 알면 좋은 것 프로그램 : 프로그래밍 결과물로서 특정 기능을 하는 실행파일(.exe) 프로세스 : 실행 중인 프로그램 인스턴스, 프로그램을 실행
📍 미리 알고있으면 좋은 지식 Authorization(인가) : 사용자 개인정보와 같은 자원에 접근할 때의 권한을 획득하는 것. 이때 Access token으로 권한이 부여됨. Authentication(인증) : 사용자의 신원을 검증하는 행위. 보안 프로세스의 첫
✔ OAuth란, > 🧐 외부 소셜 계정을 기반으로 특정 서비스(원티드)에 간편히 회원가입을 한 경험이 있나요? 클릭 한 번으로 쉽게 가입도 가능할 뿐만 아니라, 특정 서비스(원티드)에서는 페이스북, 애플, 구글 등에서 제공하는 기능을 간편히 사용할 수 있습니다!
정적 데이터 : 웹 서버에서 클라이언트가 요청한 페이지를 만들기 위해 미리 저장된 파일(HTML, CSS, JS, IMG)를 말함.동적 데이터 : 정보의 변경이 잦은 정보(EX. 날씨, 주식, 이벤트, 게시글 등)들을 ajax와 같은 라이브러리를 사용하여 동적으로 받아