분류 전체보기

프로그래머스 데브코스

프로그래머스 데브코스 7일차 - 롬복 트러블 슈팅, Enum 최적화

앞으로는 전체적인 트러블 슈팅과 코드 리뷰를 받으면서 그 날 겪었던 문제 사항들에 대해서 적고, 지식과 이론과 관련된 부분은 추가적으로 좀 더 깊게 정리해서 날을 잡아서 정리하고자 한다. 해야할게 많기도 하고 블로그 포스팅에 너무 많은 리소스를 쏟게 되면 그 만큼 학습량이 줄어든다는 부분도 있기 때문이다. 단, 당일 회고가 아닌 나의 발전을 확인하는 회고는 주 1회 일요일날 작성하는게 좋을 것 같다.Lombok오늘 팀원에게 다음과 같은 오류가 발생했다.error: constructor Numbers in class Numbers cannot be applied to given types; Numbers nums = new Numbers(Stream.generate(() -> faker.number().r..

프로그래머스 데브코스

프로그래머스 데브코스 6일차 - 전략패턴

오늘은 Pre팀과 각자 스프링에 사용되는 디자인 패턴들을 공부하고 발표하는 시간을 가졌다. 옛날에 발표를 녹음했던 거에 비해서 상당히 말도 천천히 말을 할 수 있게 되었음을 알 수 있었다. 발표 이후에 피드백으로 발표 자료에 대한 피드백이 상당히 많이 들어왔는데, 글로 쓰는 형식에 익숙해져 있다보니 글에 대한 가독성이 떨어지는 것 같다는 피드백을 받았다. 발표 자료란 어떤 형식으로 이루어져야 하는가에 대한 생각을 하게 될 수 있는 유익한 시간이었다. 추가적으로 아래는 금일 발표를 진행했던 전략 패턴에 대한 소개이다. 소개 안녕하세요 ! 객체지향의 꽃처럼 보이는 이번 전략 패턴을 소개하게 된 문종운이라고 합니다. 😄 개요 헤드 퍼스트 디자인 패턴 책에서도 전략 패턴을 제일 처음 단원으로 구성을 해두었습니다..

프로그래머스 데브코스

프로그래머스 데브코스 5일차

오늘은 공부한 내용에 대한 정리보다 오늘 있었던 뿌듯한 일을 정리하고자 한다. 자바를 공부하면서 어려운 부분 중 하나는 스트림과 람다에 대한 이해였다. 스트림과 람다는 다루어도 실력이 크게 늘지가 않았다. 이러한 어려움을 겪은 경험을 토대로 같이 데브코스를 진행하고 있는 동기들이 조금이나마 도움이 되었으면 하는 마음으로 스트림 학습 테스트를 만들게 되었다. 스트림에서 사용되는 생성 및 중간 연산자, 최종 연산자들에 대해서 정리를 해두었고, 실제 데이터를 몇 개 두어 직접 새로운 것도 만들어보고 테스트 할 수 있도록 환경을 구성하였다. 이러한 부분은 공부를 할 때 항상 큰 도움을 받는 망나니개발자 블로그 에서 많은 감명을 받았다. 해당 내용에 대해서 슬랙에 공유를 하였고, 많은 분들이 좋아해주셨다! 이러한..

프로그래머스 데브코스

프로그래머스 데브코스 4일차 - 인터페이스

인터페이스에 대해서 개념적으로 알고 있던 내용들이 몇 가지 있었다. 항상 무엇인가 기능에 대해서 생겼을 때 이게 왜 생긴걸까? 에 대해서 고민을 하는 편인데, 단순히 책에서 나온 내용만을 가지고 아 그냥 단순히 이러한 이유 때문에 나온거구나 하고 말았다. 하지만 실제로 인터페이스에 존재가 어떻게 생기게 되었는지에 대해서 많은 부분을 알 수 있었다. Interface의 특징 인터페이스는 여러가지 기능을 가지고 있다. 1. 구현의 강제력 - 자바 8 이전에는 무조건적인 구현의 강제력이 있었다. 즉, 인터페이스에 선언된 추상 메서드를 구현하는 구성 클래스는 해당 메서드를 무조건적으로 구현을 해야하는 것이다. 2. 다형성을 제공 - 다형성을 제공해준다는 특징이 있다. 하지만 이 다형성이라는 특성은 단순히 인터페..

프로그래머스 데브코스

프로그래머스 데브코스 3일차 - OOP 이야기

오늘의 커리큘럼에서는 객체지향은 어떻게 해서 생겨나게 되었는지, 그리고 객체지향의 특징은 무엇인지 객체의 연관관계를 표현하는 UML과 객체지향의 설계를 잘하는 방법에 대해서 배우게 되었다. 객체지향 프로그래밍 객체지향 프로그래밍은 객체의 행동을 기반으로 책임과 역할을 분배하여 객체간의 협력으로써 프로그램을 구현하는 방식이다. 객체지향이 등장하게 된 배경은 다음과 같다. 초기에 프로그램들은 크기가 크지 않았기에 문제가 없었지만 시간이 지남에 따라 하드웨어의 성능도 좋아지고 고객들의 요구사항은 점점 더 늘어나게 되면서 기존의 절차지향 방법대로 유지보수를 하는데에는 큰 무리가 있었다. 개발자들은 이러한 유지보수 하기 힘든 매커니즘에서 벗어나 새로운 방식으로 유지보수를 하기 쉬운 방향으로 큰 프로그램을 만드는 ..

도서/오브젝트

4. 설계 품질과 트레이드 오프

개요 2장에서는 올바른 객체지향 개발에 대해서 알아보았고, 3장에서는 객체지향 설계의 핵심에 대해서 얘기하였다. 4장 부터는 객체지향 설계를 왜 해야하는지에 대한 관점에서부터 출발하여 객체지향 설계를 안했을 때의 단점을 하나 하나 살펴본다. 이번 4장에서는 데이터 중심의 관점으로 객체의 상태에 초점을 맞추는 데이터 중심의 설계를 살펴보면서 객체 지향적인 설계의 구조와의 차이점을 알아보고자 한다. 결론부터 말하자면, 데이터 중심의 관점은 객체의 상태에 초점을 맞추기 때문에 객체 자체를 독립된 데이터로 보고, 구현 자체가 객체의 상태에 종속되기 때문에 변경에 취약해진다. 설계의 품질을 판단하기 위한 척도 설계의 품질은 판단하기 위한 척도로 캡슐화, 응집도, 결합도를 이용하여 판단이 가능하다. 캡슐화 변경 가..

Language/Java

함수형 프로그래밍과 일급 객체란

먼저 함수형 프로그래밍에 대해서 이야기를 하기 전에 프로그래밍 패러다임에 대해서 이야기를 해보자. 패러다임 먼저 패러다임의 정의는 다음과 같다. 어떤 한 시대 사람들의 견해나 사고를 근본적으로 규정하고 있는 테두리로서의 인식의 체계, 또는 사물에 대한 이론적인 틀이나 체계를 의미하는 개념 프로그래밍 패러다임 그럼 프로그래밍 패러다임(Programming Paradigm)은 무엇일까? 오브젝트의 저자이신 조영호님은 프로그래밍 패러다임을 다음과 같이 정의한다. 특정 시대에 수용된 프로그래밍 방법과 문제 해결 방법, 프로그래밍 스타일 우리가 어떤 프로그래밍 패러다임을 사용하느냐에 따라 우리가 해결할 문제를 바라보는 방식과 프로그램을 작성하는 방식이 달라진다. 즉, 새로운 프로그래밍 패러다임이 등장하면 새로운 ..

프로그래머스 데브코스

프로그래머스 데브코스 2일차 - 프레임워크를 위한 JAVA

JAVA의 개발 환경 자바는 C, C++ 과 달리 JVM(Java Virtual Machine) 이라는 가상머신이 존재하고, 이를 실행하기 위한 환경이 JRE(Java Runtime Environment) 이다. 그리고 우리는 JDK(Java Development Kit) 라는 것도 들어본 적이 있다. 도대체 이 3개의 차이는 무엇일까? JRE(Java Runtime Environment) 가장 먼저 JRE에 대해서 살펴보자. JRE는 Java Runtime Environment의 약자로 자바로 만들어진 프로그램을 실행시키는데 필요한 라이브러리들과 각종 API, JVM(Java Virtual Machine)이 포함되어 있는 자바로 만들어진 프로그램을 실행시키기 위한 도구이다. JVM(Java Virtua..

Bombo_
'분류 전체보기' 카테고리의 글 목록 (5 Page)