[JAVA] 일급 컬렉션이란? feat.우테코
·
JAVA/개념 및 정리
일급컬렉션의 장점은 컬렉션의 불변을 보장? i am different 하게 생각해요 글을 작성한 이유 & 일급 컬렉션을 선택한 이유 우아한 테크코스 2주 차 미션을 수행하면서 일급 컬렉션을 사용해 글을 작성하면서 완벽히 이해하려고 합니다. 원래는 MVC 패턴을 통해 Service(Model) 레이어에서 Car의 상태에 관련된 로직을 작성하려고 했으나, 만약 Service에서 관리해야 하는 대상이 Car 뿐만 아니라 Airplain, Bus 등 다양해지면 어떻게 될까?라는 생각에서 일급 컬렉션을 적용하게 되었다. 일급 컬렉션이란? Collection을 Wrapping하면서, Wrapping 한 Collection 외 다른 멤버 변수가 없는 상태를 일급 컬렉션이라 한다. public class Car { p..
[왜?] MVC 패턴을 선택했을까? feat.우테코
·
왜?
MVC는 디자인 패턴일까? 아키텍처 패턴일까? 위의 질문은 내가 요즘 만나는 개발자마다 묻는 공통 질문이다. "디자인 패턴이다," "아키텍처 패턴이다"라는 의견이 주로 반반 나오는 것 같다. 1. MVC 패턴이란? MVC패턴은 Model View Controller로 이루어진 소프트웨어 디자인 패턴이다. 공식문서에서 디자인 패턴으로 정의를 하였습니다. (https://developer.mozilla.org/ko/docs/Glossary/MVC) MVC - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN MVC (모델-뷰-컨트롤러) 는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴입니다. 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 두고 d..
[JAVA] 상속과 구성
·
JAVA/개념 및 정리
고양이는 동물이다(is-a), 자동차는 엔진을 가지고 있다(has-a) is-a는 "~는 ~이다"라는 말이며 상속을 의미합니다. has-a는 "~는 ~을 가지고 있다"라는 말이며 구성을 의미합니다. 1. 상속이란? 상속은 클래스 간의 계층 구조를 형성하여 특성을 물려주는 구조입니다. 자바를 배우신 분들이라면 상속에 대해 아마 잘 아실 거라고 생각됩니다. 조금이라도 난이도가 있는 코드를 보면 extends라는 문법요소가 꼭 있습니다. 이때 extends가 바로 상속을 표현하기 위해 사용되는 문법 요소입니다. 코드 class Animal { public void eat() { System.out.println("동물이 먹는다."); } } class Cat extends Animal { public void..
1주차 미션 회고 feat. 우테코
·
Backend/회고
높은 응집도 낮은 결합도 1주 차의 핵심 키워드는 "높은 응집도 낮은 결합도"였다. 설계를 할 때도 항상 키워드를 중심으로 설계했다. Keep 설계를 확실하게 한 뒤, 개발을 시작하니까 갑작스럽게 변하는 내용이 없어서 좋았다. 높은 응집도, 낮은 결합도를 중심으로 개발을 하다 보니 자연스레 MVC 패턴이 생각났고 문제에 적용시켜보았다. 설계 Controller View에게 입력을 받은 뒤, Service를 통해 데이터의 가공을 요청하고 다시 결과를 View를 통해 표현 View 입력을 받은 뒤, Controller에게 결과를 전달하고, 받은 결과를 출력한다. Sevice Controller을 통해 데이터 가공을 요청받은 뒤, 가공을 마치면 결과를 Controller로 전달. 이렇게 개념을 확실하게 공부한..
[왜?] RefreshToken을 Redis에 저장할까?
·
왜?
Redis를 통한 RefreshToken 관리, Redis를 통해 RefreshToken 구현하기 구글에 RefreshToken Redis를 검색하는 나오는 결과다. 항상 사람들은 RefreshToken을 Redis에 저장해야 한다고 말했다. 그런데 왜? RefreshToken을 Redis에 저장하냐고 물어보면 "그게 대중적인 방법이니까"라고 말하는 사람이 대부분일 것이다. RefreshToken을 Redis에 저장하는 이유 1. TTL(Time-To-Live) 대부분의 사람들이 TTL 기능 때문에 Redis에 RefreshToken을 저장할 것이다. Redis는 TTL 기능을 제공해, 데이터의 만료 시간을 설정할 수 있습니다. redisTemplate.opsForValue().set(key, refre..
[JAVA] 정적 메소드는 언제 사용할까? (feat. 우테코)
·
JAVA/개념 및 정리
나와 static의 첫 만남은 PI(3.141592....)였다. static이란? "정적인"이란 뜻을 가지고 있으며 static을 붙이면 정적 메소드, 정적 변수가 된다. 메모리적인 측면에서 설명을 하자면 한번 저장이 된 뒤, 프로그램이 종료가 될 때까지 저장된다. 메모리는 글을 따로 작성 할 때 자세히 말씀드리겠습니다. 또한 Static을 붙이면 클래스 변수, 클래스 메소드가 되므로 객체를 생성하지 않아도 호출이 가능하게 됩니다. public class StaticExample { // 정적 변수 public static int count = 0; // 정적 메소드 public static void displayCount() { System.out.println("Count: " + count); }..