2024. 5. 20. 14:06ㆍT.I.L
오늘 한 일
- Web 강의 수강 - 협업(박진상 튜터님), 디버깅(김순철 튜터)
- 스프링 기본 2주차 강의 수강
협업의 중요성
당연한 얘기겠지만, 기업의 목적은 이윤 추구이다.
팀 단위로 업무를 수행하는 것이 훨씬 효율적이기 때문에 협업또한 중요하다.
협업을 통해 얻는 시너지가 무엇인가?
잘하는 개발자와 못하는 개발자가 있다면 잘하는 개발자가 지식 공유를 통하여 지휘할 수 있다.
처음에는 잘하는 개발자 1명이 모든 업무를 수행하는 것이 가장 빠르겠지만, 장기적인 관점으로 봤을 때에는 팀 자체의 퀄리티를 높일 수 있다.
협업을 효율적으로 했다는 점을 어필하기 위해, 수치로 기재하는게 굉장히 중요하다.
수치로 기재하기 위해서는 협업 툴을 사용하면 좋다.
자체 Q&A
Q1. 지식 공유가 어렵습니다.
- 옆사람과 사담으로 기술 얘기를 하거나 친밀감을 형성하며 서로에 익숙해지면 좋습니다.
Q2. 협업을 했지만 기술적으로 제가 많이 부족했습니다.
- 협업에서 어필 할 수 있는 점은 기술 뿐만이 아닙니다. 기획을 탄탄히 하기 위해 어떤 명세서를 작성했고, 팀원에게 걸맞는 업무를 분배하기 위해 관심있게 들여다 봤다는 점도 충분히 어필될 수 있습니다.
IOC , DI
: 객체 지향의 SOLID 원칙 그리고 GoF의 디자인 패턴과 같은 설계 원칙 및 디자인 패턴
IOC : 설계 원칙 , DI : 디자인 패턴
IOC : ex) 김치볶음밥을 만들기 위한 원칙 (양,신선도, 비율 등 규칙 )
DI : ex) 김치볶음밥의 레시피 (각 절차의 순서 및 공정)
의존성이란?
우리가 다리를 다쳤을 때 "목발"에 의존하면 목발에 의존성을 두고 있다고 할 수 있다.
강한 결합이란? 코드를 수정하려면 무조건 바뀌어야 하는 코드
다형성 적용을 통해 의존성이 없도록 구현할 수 있다.
public class Consumer {
void eat(Food food) {
food.eat();
}
public static void main(String[] args) {
Consumer consumer = new Consumer();
consumer.eat(new Chicken());
consumer.eat(new Pizza());
}
}
interface Food {
void eat();
}
class Chicken implements Food{
@Override
public void eat() {
System.out.println("치킨을 먹는다.");
}
}
class Pizza implements Food{
@Override
public void eat() {
System.out.println("피자를 먹는다.");
}
}
이런식으로 매개변수에 인터페이스 구현체를 넣어두고 원하는 기능을 꺼내올 수 있다.
의존성 주입
필드 주입 / 메서드 주입 / 생성자 주입
'T.I.L' 카테고리의 다른 글
[24.05.22] 내일배움캠프 26일차 JAVA TIL - server / client (0) | 2024.05.23 |
---|---|
[24.05.21] 내일배움캠프 25일차 JAVA TIL - JPA (0) | 2024.05.21 |
[24.05.17] 내일배움캠프 23일차 JAVA TIL - 3 LayerArchitecture (0) | 2024.05.20 |
[24.05.16] 내일배움캠프 22일차 JAVA TIL - 뷰 없는 스프링 과제 (0) | 2024.05.16 |
[24.05.14] 내일배움캠프 21일차 JAVA TIL - Spring (0) | 2024.05.14 |