전체 글

모든 코드에는 이유가 있어야 한다고 생각하는 코딩하는 대학생입니다.
비슷한 듯 안 비슷한 두 친구... Steam API 란? 컬렉션, 배열 등의 저장 요소를 하나씩 참조하며 함수형 인터페이스를 적용하여 반복적으로 처리할 수 있도록 해주는 기능입니다. 컬렉션이란? 자바의 컬렉션은 데이터를 저장하고 관리하는 클래스의 집합을 의미합니다. List : 순서가 있는 데이터의 집합을 다루며 데이터의 중복을 허용합니다. Set : 순서를 유지하지 않는 데이터의 집합을 다루며, 중복을 허용하지 않습니다. Map : (Key, Value)의 쌍으로 이루어진 데이터의 집합입니다. Key는 중복을 허용하지 않습니다. Queue : 데이터가 입력된 순서대로 접근이 가능하며, 주로 데이터의 순서를 관리할 때 사용합니다. 람다식이란? (int a, int b) -> a + b // (파라미터)..
1주 차의 Problem을 해결하자. 회고의 목적은 문제를 인식하고 개선을 하는 것입니다. 1주 차의 Problem 1. JDK 17을 효과적으로 활용하지 못했다. 이 문제점을 해결하기 위해 JDK 17의 Record을 사용했습니다. public record RoundResultDto(String name, int location) { } public record GameResultDto(List winners) { } Record를 사용한 이유 간결성과 불변성이라는 장점을 가지고 있다. 필드 정의와 getter 메서드 작성 등의 반복적인 작업을 한 줄로 간결하게 표현할 수 있습니다. equals, toString, hashCode 등의 메서드를 자동으로 생성해 줍니다. 2. 의존성 주입 private ..
일급컬렉션의 장점은 컬렉션의 불변을 보장? i am different 하게 생각해요 글을 작성한 이유 & 일급 컬렉션을 선택한 이유 우아한 테크코스 2주 차 미션을 수행하면서 일급 컬렉션을 사용해 글을 작성하면서 완벽히 이해하려고 합니다. 원래는 MVC 패턴을 통해 Service(Model) 레이어에서 Car의 상태에 관련된 로직을 작성하려고 했으나, 만약 Service에서 관리해야 하는 대상이 Car 뿐만 아니라 Airplain, Bus 등 다양해지면 어떻게 될까?라는 생각에서 일급 컬렉션을 적용하게 되었다. 일급 컬렉션이란? Collection을 Wrapping하면서, Wrapping 한 Collection 외 다른 멤버 변수가 없는 상태를 일급 컬렉션이라 한다. public class Car { p..
· 왜?
MVC는 디자인 패턴일까? 아키텍처 패턴일까? 위의 질문은 내가 요즘 만나는 개발자마다 묻는 공통 질문이다. "디자인 패턴이다," "아키텍처 패턴이다"라는 의견이 주로 반반 나오는 것 같다. 1. MVC 패턴이란? MVC패턴은 Model View Controller로 이루어진 소프트웨어 디자인 패턴이다. 공식문서에서 디자인 패턴으로 정의를 하였습니다. (https://developer.mozilla.org/ko/docs/Glossary/MVC) MVC - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN MVC (모델-뷰-컨트롤러) 는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴입니다. 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 두고 d..
고양이는 동물이다(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주 차의 핵심 키워드는 "높은 응집도 낮은 결합도"였다. 설계를 할 때도 항상 키워드를 중심으로 설계했다. Keep 설계를 확실하게 한 뒤, 개발을 시작하니까 갑작스럽게 변하는 내용이 없어서 좋았다. 높은 응집도, 낮은 결합도를 중심으로 개발을 하다 보니 자연스레 MVC 패턴이 생각났고 문제에 적용시켜보았다. 설계 Controller View에게 입력을 받은 뒤, Service를 통해 데이터의 가공을 요청하고 다시 결과를 View를 통해 표현 View 입력을 받은 뒤, Controller에게 결과를 전달하고, 받은 결과를 출력한다. Sevice Controller을 통해 데이터 가공을 요청받은 뒤, 가공을 마치면 결과를 Controller로 전달. 이렇게 개념을 확실하게 공부한..
코딩하는_대학생
코딩하는 대학생에서 개발자까지