본문 바로가기

롱런 프로젝트

(7)
시나리오 쓰고 있네 SCENE #3 요즘 아주 심심한 나날을 보내고 있다. 취미도 없고 코로나라 밖에도 못나가기 때문이다. 그래서 주말 남는 시간 동안 무언갈 배워보고 싶다. 내가 딱히 좋아하는 게 없어서 무엇을 배워야 좋을 지 잘 모르겠다. 그래서 검색해봤다. 랜덤으로 내가 원하는 시간대에 큰 비용이 들지 않는 선에서 검색을 하였다. 스쿠버 다이빙, 윈드 서핑, 스키, 마카롱만들기, 케익 만들기 등 다양한 스터디가 있었다. 나는 너무 멀리는 가고 싶지 않아, 생활 반경 내에서만 알아보기로 했다. 회사가 있는 강남과, 집 동네인 성남으로 위치를 수정했다. 그 중 요즘 핫하다는 주식 관련 스터디가 있었다. 주식관련 프로그래밍 이라고 하는데.. 프로그래밍은 어떤걸 뜻하는지 궁금했다. 스터디장에게 쪽지로 문의를 남겼다. 쪽지를 보고 프로그래밍이..
시나리오 쓰고 있네 SCENE #2 요즘 핫하다는 쿠버네티스 스터디를 해보려 한다. 아직 많이 하는 사람이 없는지 검색해도 나오지 않는다. 그래서 내가 만들기로 한다. 하지만 나도 전문적으로 잘 아는 사람에게 배우고 싶은지라 토론보다는 강의형태로 스터디 하고싶다. 그래서 저번에 강의형태로 만들었지만 강사로 지원하는 사람이 없어서 무산되고 말았다. 그래서 이번에는 강의형 스터디에 참여하는 사람들과 함께 일정 금액을 걷어 강사에게 주려고 한다. 금액은 한 수업에 인당 5천원 정도로 설정하고, 월 화 저녁 7시 수업으로 한다. 인원은 최소 6명에서 최고 10명, 첫 수업은 맛보기로 무료, 위치는 홍대역 땡땡스터디룸이고, 책은 땡땡쿠버네티스로 한다. ---- 지원자 중에 2명은 리포팅 당한 횟수가 많아 제외 하였다. 그래서 총 지원자 11명 중 ..
빌더 패턴에 생성자 파라미터를 강제하거나 강제하지 않을 때 빌더 패턴을 사용하면 private 생성자에 중첩 클래스인 Builder 클래스을 통하여 해당 필드값을 채워 넣는다. 빌더 패턴은 클래스의 필드값이 여러개인데 (좀 많을 때) 해당 필드값들이 모두 필요하지 않을 때 자주 사용된다. Effective Java 3/E - item2 "점층적 생성자 패턴도 쓸 수는 있지만, 매개변수 개수가 많아지면 클라이언트 코드를 작성하거나 읽기 어렵다." 현 프로젝트에서는 Study 객체의 정보를 담당하기 위한 StudyCondition 클래스를 정의하는데 이 정보들이 모두 필요하지 않았다. 게다가 이 객체를 활용하여 Study 객체를 비교하거나 필터링 하는데도 유용하게 사용할 수 있을 거라 생각했다. 그래서 StudyCondition 객체를 Builder 패턴으로 정의했..
컬렉션을 활용한 객체를 사용할 경우 Volunteer 라는 클래스를 정의하고 지원자들을 모아 비교하고 확인하는 로직 또한 필요하기 때문에 컬렉션으로 묶는 VolunteerSet 또한 정의했다. 일단 컬렉션으로 묶은 필드를 포함하는 클래스를 정의할 때, 즉 래핑한 해당 컬렉션의 장점은 컬렉션에서 정의한 공개 메서드들을 통제할 수 있다. 그리고 래핑한 클래스의 이름을 가독성 좋게 짓는다면 그 또한 장점이라 할 수 있다. 내부 캡슐화도 된다. 이때 컬렉션에서 주로 사용되는 메서드들이 객체 내부적으로 사용하는 메서드가 있다. 바로 equals 와 hashCode 메서드다. 이 메서드를 재정의 해야 래퍼클래스에서 사용하는 동작들을 커스텀 할 수 있다. 현 프로젝트를 예시로 든다면 Volunteer 클래스의 equals 와 hashCode 는 해당 ..
인터페이스와 추상 클래스를 함께 쓴다면 인터페이스 설계 도중 1. interface Group class Study implements Group enum StudyType 으로 설계 후 Study 에서 StudyType을 필드로 갖는 방법 2. interface Group abstract class Study implements Group class LectureStudy extends Study class DebateStudy extends Study 으로 설계 후 구현하는 방법 두가지 관점에서 고민을 했다. 1번 경우를 사용하면 새로운 타입이 추가될 때 열거 타입에 추가되는 객체를 추가하면 쉽게 처리되지만 새로운 타입의 정의에 따라 달라질 수 있는 필드 또는 상태가 추가 될경우 ( 여기선 Lecture 일 때 가르치는 사람 필드가 필요했..
시나리오 쓰고 있네 SCENE #1 시나리오 쓰고 있네 이곳에 들어온 당신은 배움을 원하는 자 -------------------------------------------------- SCENE #1 내가 배우고 싶은게 있어! 바로 꽃꽂이야 음.. 시간은 월 화 퇴근 후만 가능해 그리고 회사랑 집 사이에 있었으면 좋겠어 무료면 좋겠지만 재료비가 필수 일테니까 어느정도 돈은 들겠지? 한 수업에 만원 정도면 적당할 거 같아 오호 여러 개 있네 여긴 사람이 너무많다 인원이 적어야 더 잘 배울수 있어 여긴 서로 알려주는 곳이구나 초보자에겐 너무 어려워 강사가 있는게 좋을거같아 그럼 여기로 해야겠다. 내일까지 모집이네. 자리도 한자리 남았잖아?! 위치도 역 근처고 시간도 좋아 기간은 2달 학습방법도 맘에 들어 지원해야겠다. 1. 그룹 채팅방에 들..
롱런 프로젝트 사이드 프로젝트 롱런 프로젝트다. 롱런 Long run 하려면 롱런 Long learn 하라는 주제로 배움을 위한 ( 스터디 관련 ) 공간을 만들려고 한다. 아직 기능들은 모두 확정되지 않았으며 차후 가능하면 서비스도 해보고 싶다. 이 카테고리는 롱런 프로젝트를 개발하며 얻는 지식 또는 문제점 과 해결책 등을 정리하여 포스팅 하기 위한 블로그다. 아직 어설프고 부족하지만 최대한 깔끔하고 유연한 코드를 통해 프로젝트를 완성 시키고 보수해 나가는것이 목표다. 끝