SOLID라고 하는 5가지 객체지향 설계원칙이 있다. OOP의 개념이 이해가 되고 습득이 되어 해당 개념 또한 습득하여 내 것으로 만들어보고자 한다. 1. 단일 책임 원칙 - SRP (Single Responsibility Principle) 클래스는 단 한개의 책임을 가져야 함'책임' -> 기능정도로 보면 됨하나의 클래스는 하나의 기능을 담당하여 하나의 책임을 수행할 수 있도록 함만일 하나의 클래스에 기능이 여러개라면 기능 변경이 일어났을때 수정해야할 코드가 많아짐SRP 원칙을 따름으로써 한 책임의 변경으로부터 다른 책임의 변경으로의 연쇄작용을 극복할 수 있게됨단일 책임 원칙의 목적은 프로그램의 유지보수성을 높이기 위한 설계 기법모듈이 변경되는 이유가 한가지 여야 함SOLID 원칙의 기초가 됨SRP..
자격증 공부를 위해 객체지향 프로그래밍에 대해 단순 암기만 했었는데 이번 글을 통해 해당 패러다임이 왜 필요한지 그리고 특징은 무엇인지를 알아보면서 제대로 학습해보고자 한다.과거를 알면 현재를 알고 현재를 알면 미래를 알 수 있듯이 먼저, 객체지향 프로그래밍을 이해하기전에 객체지향 프로그래밍이 등장하기 이전의 패러다임을 이해할 필요가 있다. 1. 순차적 프로그래밍정의한 기능의 흐름에 따라 순서대로 동작을 추가하며 프로그램을 완성하는 방식간단한 프로그램이라면 흐름이 눈으로 보이기 때문에 매우 직관적이지만 프로그램의 규모가 커지면 곤란하게 된다.(ex 스파게티 코드)2. 절차적 프로그래밍'절차'는 함수를 의미한다. 따라서 반복되는 동작을 함수 및 프로시저 형태로 모듈화하는 방식반복 동작을 모듈화하여 코드르 ..
1. Redis의 개념 - 레디스(Redis)는 Remote Dictionary Server의 약자로서[4], "키-값" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스 (DBMS)이다. 2009년 살바토르 산필리포(Salvatore Sanfilippo)가 처음 개발했다. 2015년부터 Redis Labs가 지원하고 있다. 모든 데이터를 메모리로 불러와서 처리하는 메모리 기반 DBMS이다. BSD 라이선스를 따른다. DB-Engines.com의 월간 랭킹에 따르면, 레디스는 가장 인기 있는 키-값 저장소이다.출처 : 나무위키 2. Redis의 특징In-Memory 데이터 저장소Redis는 모든 데이터를 메모리에 저장하여 빠른 읽기 및 쓰기 성능을 제공..
동시성 제어를 하는 방법에는 여러가지가 있는데 Database의 낙관적인 락, 비관적인 락을 알아보고자 한다.각각의 개념과 특징, 성능, 언제 사용해야 하는지를 알아보겠다. 동시성 제어란?데이터 무결성을 침해하지 않고 동시에 트랜잭션을 처리할 때 이를 제어하는 방법의 총칭을 뜻함. Lock?동시성 제어의 한 방법으로 데이터에 잠금을 걸어 읽기/변경/삭제 등을 제한하는 수단. 낙관적인 락충돌이 발생하지 않는다고 가정Version column 추가(number, hash, timestamp 등)Database에서 최초에 읽어온 versionupdate 시 현재 Database의 version과 다르다면 롤백비관적인 락충돌이 자주 발생할 것이라고 가정Table or Row에 Lock 걸고 트랜잭션 작업다른 ..
MVVM 패턴의 뷰모델(View Model) 레이어에 해당하는 화면(View)단 라이브러리View : 사용자 화면DOM : 해당 객체를 이용하여 자바스크립트 이용DOM Listeners : 이벤트 청취Model : 자바스크립트 특정 로직 발생Data Bindings : 이벤트 발생하며 동작하고 화면에 반영Vue의 핵심은 ReactivityVue Instance인스턴트는 아래와 같이 생성할 수 있다.new Vue();인스턴스를 생성하고 나면 아래와 같이 인스턴스 안에 어떤 속성과 API가 있는지 콘솔창에서 확인 가능var vm = new Vue();console.log(vm);인스턴스에서 사용할 수 있는 속성과 API는 다음과 같다.new Vue({ el: , template: , data: ,..
이번 글에서는 다양한 JDK 중에서 어떤 JDK를 사용하는 것이 좋은지에 대해서 다루는 글을 작성해보려고 한다. Java 애플리케이션을 구축하고 실행하려면 Java 플랫폼, Standard Edition("Java SE") 사양을 구현하는 Java 컴파일러, Java 런타임 라이브러리 및 가상 머신(JVM)이 필요하다. OpenJDK는 Java SE 사양의 오픈 소스 참조 구현이지만 소스 코드일 뿐이다. 바이너리 배포판은 지원되는 다양한 플랫폼에 대해 다양한 공급업체에서 제공된다. 이러한 배포판은 라이센스, 상용 지원, 지원 플랫폼 및 업데이트 빈도가 다르다. Releases 현재의 JDK Releases Model에서는 6개월마다(3월과 9월) 새로운 메이저 버전 번호가 포함된 새로운 Feature 릴..