본문 바로가기

우테코 자유테크 스터디/자유주제6

[스터디] IoC : 제어의 역전 저번 스터디에서 DI에 대해 발표했었다. 그것과 연결하여 이번에는 IoC에 대해 알아보았다. [스터디] 의존관계 주입(DI : Dependency Injection) 최근 김영한님의 Spring 핵심 원리 - 기본편 강의를 듣고 있는데 DI라는 단어가 자주 나왔다. 도대체 DI가 정확히 뭘까? 이번 기회에 한 번 알아보겠다. 의존관계란? "A가 B를 의존한다."라는 표현은 newbie-in-softengineering.tistory.com 제어의 역전 (Inversion of Control, IoC) 직장에 차를 몰고 가는 것은 내가 차를 제어하는 것이다. 직접 차를 운전하는 대신 운전 기사를 고용한다면? 이것을 제어의 역전이라고 한다.차를 직접 운전할 필요가 없고 운전자가 운전하게 함으로써 나는 본업에.. 2023. 12. 22.
[스터디] 정적 팩토리 메서드(Static Factory Method) 정적 팩토리 메서드란? 정적(Static), 팩토리(Factory), 메서드(Method) 이 중 팩토리는 GoF 디자인 패턴 중 팩토리 패턴에서 유래한 것으로 객체를 생성하는 역할을 분리하겠다는 의미가 담겨있다. 다시 말해, 정적 팩토리 메서드란 객체 생성의 역할을 하는 클래스 메서드라는 의미로 요약할 수 있다. java.time 패키지 내의 LocalTime 클래스의 정적 팩토리 메서드를 같이 살펴보자. // LocalTime.class ... public static LocalTime of(int hour, int minute) { ChronoField.HOUR_OF_DAY.checkValidValue((long)hour); if (minute == 0) { return HOURS[hour]; } .. 2023. 12. 8.
[스터디] 의존관계 주입(DI : Dependency Injection) 최근 김영한님의 Spring 핵심 원리 - 기본편 강의를 듣고 있는데 DI라는 단어가 자주 나왔다. 도대체 DI가 정확히 뭘까? 이번 기회에 한 번 알아보겠다. 의존관계란? "A가 B를 의존한다."라는 표현은 어떤 의미일까? 의존대상B가 변하면, 그것이 A에 영향을 미친다. - 이일민, 토비의 스프링 3.1, 에이콘(2012), p.113 즉, B의 기능이 추가 또는 변경되거나 형식이 바뀌면 그 영향이 A에 미친다는 뜻이다. 예시를 한 번 살펴보자. "햄버거 가게 요리사는 햄버거 레시피에 의존한다." 햄버거 레시피가 변경된다면, 변경된 레시피에 따라서 요리사는 햄버거를 만드는 방법을 수정해야 한다. 레시피의 변화가 요리사에게 영향을 미쳤기 때문에 "요리사는 레시피에 의존한다."고 말할 수 있다. clas.. 2023. 12. 8.
[스터디] getter, setter 그래서 왜 쓰면 안 되는건데?🤔 // 이 글에서의 getter 메서드는 필드의 참조값을 그대로 넘기는 getXXX 형태의 public 메서드를 뜻함 public class TodoList { private final List todos = new LinkedList(); public List getTodos() { return todos; } } 우테코 프리코스를 진행하며 정말 많이 들었던 'getter 사용 지양'. setter는 왜 쓰지 말라는 건지 대충 알겠지만... getter는 도대체 왜? 무엇이 문제일까? 잠깐 애초에 getter는 왜 쓰는거지? 그냥 필드 자체의 접근자를 public으로 하면 되잖아?? 당연히 위와 같이 접근자를 public으로 해버리면 정보 은닉이고 캡슐화고 아무것도 지켜지지 않겠죠. 어떤 객체의 필드들이.. 2023. 11. 23.
[스터디] 일급 컬렉션 발표 자료 일급 컬렉션이란? 규칙 8 : 일급 컬렉션 사용 이 규칙의 적용은 간단하다. 컬렉션을 포함한 클래스는 반드시 다른 멤버 변수가 없어야 한다. 각 컬렉션은 그 자체로 포장돼 있으므로 이제 콜렉션과 관련된 동작은 근거지가 마련된 셈이다. 필터가 이 새 클래스의 일부가 됨을 알 수 있다. 필터는 또한 스스로 함수 객체가 될 수 있다. 또한 새 클래스는 두 그룹을 같이 묶는다든가 그룹의 각 원소에 규칙을 적용하는 등의 동작을 처리할 수 있다. 이는 인스턴스 변에 대한 규칙의 확실한 확장이지만 그 자체를 위해서도 중요하다. 컬렉션은 실로 매우 유용한 원시 타입이다. 많은 동작이 있지만 후임 프로그래머나 유지보수 담당자에게 의미적 의도나 단초는 거의 없다. - 소트웍스 앤솔로지 객체지향 생활체조편 한 마디로 Col.. 2023. 11. 9.
[스터디] SOLID 원칙 발표 자료 SOLID 관련 자료 https://www.nextree.co.kr/p6960/ 객체지향 개발 5대 원리: SOLID 현재를 살아가는 우리들은 모두 일정한 원리/원칙 아래에서 생활하고 있습니다. 여기서의 원칙 이라 함은 좁은 의미로는 개개인의 사고방식이나 신념, 가치관 정도가 될 수가 있겠고, 넓게는 한 www.nextree.co.kr https://mangkyu.tistory.com/194 [OOP] 객체지향 프로그래밍의 5가지 설계 원칙, 실무 코드로 살펴보는 SOLID 이번에는 객체 지향 프로그래밍의 5가지 핵심 원칙인 SOLID에 대해 알아보고자 합니다. 실제로 애플리케이션을 개발할 때 어떻게 적용할 수 있을지 구체적인 예시를 들어 살펴보고자 합니다. 아 mangkyu.tistory.com htt.. 2023. 11. 2.