▼ What ? 다섯 번째 챕터인 "책임과 메시지"에서 중요한 키워드는 '자율적인 객체'과 '메시지'인 것 같다. 왜 객체지향 시스템이 다른 패터다임보다 더 뛰어나다고 평가받는지, 그리고 그러한 객체지향 시스템의 이점을 최대화시키기 위해서 반드시 알고 있어야 할 첫 번째 개념인 '메시지'와 객체의 내부와 외부의 분리로 탄생한 '자율적인 객체'에 대해 생각해보는 시간을 가졌다. ▼ Summory & Comment 이 챕터를 읽고 나서 기억에 남는 말 ! 어떤 것도 동시에 객체의 내부와 외부에 포함될 수 없다. 이번 챕터에서 '메시지'가 왜 중요하고 책임을 왜 '자율적'으로 설계해야 하며 저자가 거듭해서 강조한 '자율적인 객체'가 무엇인지를 한 문장으로 표현해낸 것 같아 기억에 남는다. 사실 이번 챕터를 읽..
▼ What ? 이번 주에 GDSC - Web 커리큘럼 마지막 주차 시간을 가졌다. 웹 개발의 마무리가 무엇일지 생각해봤을 때 떠오르는 것은 바로 내가 개발한 웹 서비스를 다른 사람들도 이용할 수 있도록 AWS를 이용해 인터넷에 서버를 배포하는 작업일 것이다. 따라서, 서버 배포를 해보는 과정을 끝으로 GDSC - Web 커리큘럼 정리를 마무리해보려고 한다. ▼ 서버 배포 AWS 라이트세일 라이트세일 메인 화면에서 "인스턴스 생성" 을 클릭한다. 를 선택하고 블루프린트는 을 선택하고, 를 선택하면 된다. 고정 IP 생성 / 방화벽 해제 AWS 서버에 접속하려면 고정 IP와 방화벽 해제가 필요하다. 고정 IP 생성 ➜ AWS 라이트세일 메인 화면에서 "네트워킹" 탭으로 이동해 아래처럼 생성해주면 된다. 방..
▼ What ? 7주차엔 게시물/댓글 추천(좋아요) 기능, 답변을 작성했을 때 작성한 답변 위치로 스크롤 되는 기능을 구현해보고 게시물/댓글을 작성할 때 마크다운 문법이 적용되도록 했으며, 마지막으로 구현한 것은 검색 기능 정도였던 것 같다. ▼ 추천 엔티티 변경 - Question, Answer 일단 질문 추천한 사람이면 Question 엔티티에, 답변 추천한 사람이면 Answer 엔티티에 추가해줘야 한다. Question 엔티티 ➜ voter(추천인) 속성 추가 ➜ 추천인은 중복되서는 안되기 때문에 voter 타입을 List가 아닌 Set으로 해야 한다. ... import java.util.Set; import jakarta.persistence.ManyToMany; ... public class ..
▼ What ? 이번 4장에선 제목에서도 예상해볼 수 있듯이 1장부터 3장까지 언급한 개념들을 취합해서 객체지향을 어떻게 설계해야 하는지를 설명해주는 내용을 담고 있다. 그렇기 때문에 '역할', '책임', '협력' 이라는 개념 외에도 '책임-주도 설계', '디자인 패턴' 그리고 '테스트-주도 개발' 에 대해서도 다루고 있고, 이번 4장이 지금까지 이 책을 통해 배운 내용들을 정리해볼 수 있는 중요한 챕터인 것 같다. ▼ Summory & Comment 이 챕터를 읽고 나서 기억에 남는 말 ! 객체지향 시스템에서 가장 중요한 것은 충분히 자율적인 동시에 충분히 협력적인 객체를 창조하는 것이다. 이 목표를 달성할 수 있는 가장 쉬운 방법은 객체를 충분히 협력적으로 만둔 후에 협력이라는 문맥 안에서 객체를 충..
▼ What ? 이번 챕터에서도 "이상한 나라 앨리스" 에 나오는 장면을 가지고 '타입' 과 '추상화' 라는 개념에 대해 다룬다. '타입' 과 '추상화' 가 왜 필요하며 두 개념 사이에 어떤 관계가 있는지, 그리고 객체지향을 설계하는 과정에서 객체를 생각할 때 필요한 관점 두 가지가 무엇인지에 대한 이야기를 담고 있다. ▼ Summory & Comment 이 챕터를 읽고 나서 기억에 남는 말 ! 현상은 복잡하다. 법칙은 단순하다. 버릴 게 무엇인지 알아내라. 저자가 한 말은 아니고, 리처드 파인만이 한 말을 책에 가져온 것이지만, 추상화가 왜 필요하고 추상화를 어떻게 해야 하는지를 한 줄로 담아내고 있는 말인 것 같아서 기억에 남았다. 추상화를 통한 복잡성 극복 추상화에 대한 이야기는 헤리 벡이 창조한 ..
▼ What ? '회원가입' 과 '로그인/로그아웃' 까지 복습하고 정리해봤는데, 양이 많아서 글쓴이를 표시하는 기능과 글을 수정하고 삭제하는 기능에 대해선 따로 정리해보려고 한다. ▼ 글쓴이 표시 Question & Answer 엔티티에 글쓴이 속성 추가 Question 엔티티 수정 Question 엔티티에 'author' 속성을 추가하자. ➜ 여러 개의 질문(many)이 한 명의 작성자(one)에게 작성될 수 있으므로 '@ManyToOne' 을 적용해줘야 한다. ... import jakarta.persistence.ManyToOne; import com.gdsc.webboard.user.SiteUser; ... public class Question { ... @ManyToOne private Sit..