분류 전체보기
-
[Java] 객체지향 설계 5원칙 - SOLID란 무엇일까?Language/Java 2021. 8. 21. 00:25
객체지향 설계 5원칙 SOLID 객체 지향 설계의 정수라고 할 수 있는 5원칙이 집대성됐는데, 바로 SOLID 입니다. SRP(Single Responsibility Principle): 단일 책임 원칙 OCP(Open Closed Priciple): 개방 폐쇄 원칙 LSP(Listov Substitution Priciple): 리스코프 치환 원칙 ISP(Interface Segregation Principle): 인터페이스 분리 원칙 DIP(Dependency Inversion Principle): 의존 역전 원칙 SRP - 단일 책임 원칙 어떤 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 한다. - 로버트 C.마틴 위의 남자 클래스를 보면 그냥 보아도 이 사람이 해야 할 역할, 책임이 매우 많은 ..
-
[Kotlin In Action] 2장: 코틀린 기초Book/Kotlin In Action 2021. 8. 20. 15:04
2장: 코틀린의 기초 2장에서 다루는 내용 함수, 변수, 클래스, enum, 프로퍼티를 선언하는 방법 제어 구조 스마트 캐스트 예외 던지기와 예외 잡기 2.1.2 함수 fun max (a: Int, b: Int): Int { return if (a > b) a else b } 함수를 선언할 때 fun 키워드를 사용합니다. 파라미터 이름 뒤에 그 파라미터 타입을 적습니다. 함수를 최상위 수준에 정의할 수 있습니다. 자바와 달리 꼭 클래스 안에 함수를 넣어야 할 필요가 없습니다. 배열도 일반적인 클래스와 마찬가지입니다. 코틀린에는 자바와 달라 배열 처리를 위한 문법이 따로 존재하지 않습니다. fun max (a: Int, b: Int): Int = if (a > b) a else b 처음에 보았던 코드를 간..
-
[Redis] Medis를 사용하여 Redis GUI를 사용하는 법Tool 2021. 8. 10. 23:43
Medis 설치해서 사용하기! MySQL 같은 경우는 WorkBench가 있어서 손쉽게 데이터를 보고 관리할 수 있는데요. 하지만 Redis는 매번 redis-cli를 통해서 데이터를 확인하고 하는 것이 번거로웠습니다. 그러던 중에 Medis라는 Redis 데이터를 UI로 볼 수 있는 아주 좋은 것이 있어서 정리해보려고 합니다. 그래서 Mac에서 Medis를 설치해서 사용하는 법에 대해서 알아보겠습니다. 먼저 AppStore에서 Medis를 검색하면 Medis2 - GUI for Redis가 나오는데요. 이것을 다운하겠습니다. 그러면 위와 같은 화면이 뜨는데요. 위의 화면에서 다른 ElastiCache와 같은 것을 사용한다면 해당 URL을 적은 후에 Connect를 누르면 되고 local Redis를 사..
-
[Spring] Spring Data Redis로 자료구조 사용해보기Server/Spring 2021. 8. 10. 22:59
Spring Data Redis로 자료구조 다루어 보기 Redis 는 간단하게 말하면 Key-Value 형태의 영속성을 지원하는 인메모리 데이터 저장소입니다. 이번 글에서는 Spring Data Redis를 활용해서 List, Set, Sorted Set, Map을 사용해서 데이터를 저장하고 조회하는 것에 대해서 정리해보겠습니다. 먼저 Spring Boot gradle 기반의 프로젝트에서 의존성 부터 추가해서 시작해보겠습니다. gradle implementation 'org.springframework.boot:spring-boot-starter-data-redis' 위의 Spring-data-redis 의존성을 추가하겠습니다. 이제 Redis 설정을 해보겠습니다. Redis 설정 @Configurati..
-
[DB] Redis란 무엇일까? 간단하게 알아보기!Computer Science/Database 2021. 8. 10. 16:47
Redis란 무엇일까? Redis는 Memcached와 비슷한 캐시 시스템으로서 동일한 기능을 제공하면서 영속성, 다양한 데이터 구조와 같은 부가적인 기능을 지원하고 있습니다. 레디스는 모든 데이터를 메모리에 저장하고 조회합니다. 즉, 인메모리 데이터베이스 입니다. 이 말만 들으면 Redis에 모든 데이터를 메모리에 저장하는 빠른 DB가 다라고 생각할지도 모릅니다. 하지만 빠른 성능은 레디스의 특징 중 일부분 입니다. 다른 인메모리 디비들과의 가장 큰 차이점은 레디스의 다양한 자료구조 입니다. 이렇게 다양한 자료구조를 지원하게 되면 개발의 편의성이 좋아지고 난이도가 낮아진다는 장점이 있습니다. 예를들어, 어떤 데이터를 정렬을 해야하는 상황이 있을 때, DBMS를 이용한다면 DB에 데이터를 저장하고, 저장..
-
[Java] 인터페이스와 추상 클래스 차이는 무엇일까?Language/Java 2021. 8. 7. 01:47
인터페이스와 추상 클래스 차이는? 이번 글에서는 인터페이스와 추상 클래스의 차이에 대해서 정리해보겠습니다. 실제로 이 질문은 면접에서도 자주 물어보는 질문이고, 약간 알듯 말듯 한데 대답하기는 애매한 주제라 한번 각각 특징에 대해서 정리해보고 둘의 차이를 정리 해보겠습니다. 추상 클래스 클래스를 설계도에 비유한다면 추상 클래스는 미완성 설계도에 비유할 수 있습니다. 추상 클래스는 키워드 abstract를 붙이기만 하면 됩니다. public abstract class Test {} 추상 클래스는 추상 메소드를 0개 이상 가지고 있다는 것을 제외하고는 일반 클래스와 전혀 다르지 않습니다. 추상 메소드는 간단하게 말하면 선언부는 있는데 구현부가 없는 메소드를 의미합니다. public class 쥐 extend..
-
[MySQL] InnoDB 언두(Undo) 로그와 MVCC란 무엇일까?Book/Real MySQL 2021. 7. 29. 16:17
언두 영역이란? 언두 영역은 UPDATE 문장이나 DELETE 문장으로 데이터를 변경했을 때 변경되기 전의 데이터(이전 데이터)를 보관하는 곳입니다. UPDATE membere SET name='홍길동' WHERE member_id = '1'; 위 문장의 실행되면 트랜잭션을 커밋하지 않아도 실제 데이터 파일 내용은 홍길동으로 변경됩니다. 그리고 변경되기 전의 값이 Gyunny 였다면, 언두 영역에는 Gyunny라는 값이 백업되는 것입니다. 이 상태에서 사용자가 커밋하게 되면 현재 상태가 그대로 유지되고, 롤백하게 되면 언두 영역의 백업된 데이터를 다시 데이터 파일로 복구합니다. 언두의 데이터는 크게 두 가지 용도로 사용됩니다. 트랜잭션의 롤백 대비용 트랜잭션의 격리 수준을 유지하면서 높은 동시성을 제공 ..
-
1일 1커밋을 1년 7개월 동안 하면서 느낌점Retrospect 2021. 7. 29. 13:52
1일 1커밋을 1년 7개월 동안 해오면서... 이번 글에서는 제가 1일 1커밋을 1년 7개월 동안 하면서 느낀점에 대해서 간단하게 회고를 해보려 합니다! (Github) 1일 1커밋을 왜 시작했는지? 1일 1커밋을 지속할 수 있었던 것들은 어떤 것이 있었는지? 1일 1커밋에 대한 장단점! 자주 받았던 간단한 질문들 정리~? 이정도에 대해서 가볍게 회고하면서 저의 생각을 공유해보려 합니다. 바로 본론으로 고고싱! 1일 1커밋을 왜 시작했는지? 🤔🤔 1일 1커밋에 대해서 다른 사람과 얘기를 하다 보면 1일 1커밋을 왜 시작했는지 라는 질문을 아주 많이 받았습니다.(동아리 면접 때도 자주 들었던 질문!) 왜 시작했는지? 대해 얘기하려면 2019년으로 가야 하는데요. 2019년의 저는 간단한 개발 조차 해본 적..