남병관 CTO님 세션 [좋은 개발자란?]
비싼 개발자란? == 쉽게 구할 수 없는 것을 가진 사람
- 그렇다면 쉽게 구할 수 있는 건? 검색 가능한 것. 강의, 블로그...
- 그럼 귀한 건? 불면의 밤 끝에 나오는 것. 사고력, 구현력, 인성..
사고력
- 마주할 질문 중에 못 푸는 문제는 없다.
- 내가 해결할 수 있다는 믿음
구현력
- '아는 것'과 '하는 것'은 다르다.
- 맨날 강의를 듣고.. 블로그를 검색하고.. 놉. 핵심은 코딩을 많이 하는 것.
소통력
- 내 생각을 그대로 전달하는 건 얼마나 어려운 일일까?
- 설득할 준비보다 멋진 것은, 설득당할 준비를 하는 것.
3줄 요약
- 귀한 엔지니어는 사고력 x 구현력 x 소통력.
- 세 살 버릇 여든까지. '취직하면 해야지'로 되는 게 아님.
- 소통력이 정말 중요.
QnA
Q. 구현력을 기르기 위한 방법?
A. 구현을 많이 해라. 라이브러리를 갖다 쓰지 말고 만들어봐라! 많이 해라! 왜 안 함? 좀 해라
알고리즘 문제를 많이 풀어봐라
Q. 사고력은 어떻게 기르는지?
A. 비어 있는 흰 노트에 펜으로 많이 써봐라.
Q. 구현력이 어느 정도 인정받을 수 있는 물리적인 시간?
A. 스택이나 큐를 본인의 언어로 구현할 줄 아는 정도.
Q. 리더가 되기 위한 중요한 경험?
A. 직무적인 스킬을 쌓아야 한다. 리더로 갈수록 소통력이 훠얼씬 중요하다.
주특기 심화 과제
팀 과제 진행 상황
협업을 진행하며 기능별로 작업을 나누었다.
- 조원A : 댓글 API, Spring Security 적용
- 조원B : 댓글 좋아요 API
- 나 : 게시글 좋아요 API
오늘 각자 맡은 기능 개발이 어느 정도 끝이 났다.
깃헙으로 작업물 합치기 성공!
최대한 Git-flow 전략과 커밋 컨벤션을 지키려 노력했다.
이제 남은 부분은 예외처리.
마침 내가 저번 주차 때 전역 예외처리를 구현해놓은 부분이 있어서
팀 과제에도 적용하기로 하였다.
오늘의 궁금증
댓글 좋아요 API는 어떻게 구현할까?
어제 기술 매니저님이 조언해주신 대로 게시글 좋아요 API 로직을 변경해보았다.
같은 방식으로 댓글 좋아요 API까지 완성!
포인트는 '댓글'과 '댓글 좋아요'를 다대일 양방향으로 매핑하는 것!
@Entity
@Getter
@NoArgsConstructor
public class Comment extends Timestamped{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@OneToMany(mappedBy = "comment", cascade = CascadeType.REMOVE)
private List<CommentLike> commentLikeList = new ArrayList<>();
...
}
@Getter
@Entity
@NoArgsConstructor
public class CommentLike {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToOne
@JoinColumn(name = "COMMENT_ID", nullable = false)
private Comment comment;
...
}
그러면 DTO에서 이렇게 좋아요 개수를 구할 수 있다.
@Getter
public class CommentToDto {
private Long id;
private String username;
private String comment;
private int commentLikeCount; // 좋아요 개수
private boolean commentLikeCheck; // 해당 회원의 좋아요 여부
private LocalDateTime createdAt;
private LocalDateTime modifiedAt;
public CommentToDto(Comment comment, boolean commentLikeCheck) {
this.id = comment.getId();
this.username = comment.getUsername();
this.comment = comment.getComment();
this.commentLikeCount = comment.getCommentLikeList().size(); // 좋아요 개수
this.commentLikeCheck = commentLikeCheck;
this.createdAt = comment.getCreatedAt();
this.modifiedAt = comment.getModifiedAt();
}
}
좋아요 기능의 controller를 합치는 게 좋을지?
현재 각 게시글 댓글에 딸린 좋아요 API는 각자의 Service와 Controller를 가지고 있는 상태이다.
조원분께서 어차피 양이 작으니 연관된 엔티티에 합쳐보자고 의견 주셔서
어떤 게 더 올바른 방향일지 기술 매니저님께 여쭤보았다.
기술 매니저님은 '나누지 않을 이유가 없다면 합쳐도 된다'라는 의견을 주셨다.
바~로 합치기 성공!
오늘의 나는
남병관 CTO님의 세션을 들으면서 깨달은 게 많다.
나도 알게 모르게 강의에 대한 욕심이 좀 있었는데
구현이 보다 더 중요하다는 걸 머리로는 알면서도
새로운 기술을 알지 못하는 것에 대한 불안감? 때문에
강의로 보내는 시간이 많았던 것 같다.
쉽게 구할 수 없는 것을 가진, 그런 귀한 개발자가 되고 싶다.
실제로 코딩하는 것에 더 비중을 두고, 끝까지 몰입하자.
스스로 더 찾아보고, 틀 안에 갇히지 말자.
계속 세상을 넓혀나가자.
'📝 TIL' 카테고리의 다른 글
[TIL] 5주차 주특기 심화ㅣ과제 제출과 코드 리뷰 (0) | 2022.12.15 |
---|---|
[TIL] 5주차 주특기 심화ㅣ예외처리 (0) | 2022.12.15 |
[TIL] 5주차 주특기 심화ㅣ게시글 좋아요 API (0) | 2022.12.12 |
[TIL] 4주차 주특기 심화ㅣSpring Security (0) | 2022.12.10 |
[TIL] 4주차 주특기 심화ㅣ주간 시작 (0) | 2022.12.09 |