분류 전체보기
-
Spring(6) - Mock, MockitoBack-end/Spring 2021. 8. 25. 17:02
이번 포스팅은 Short Url API 프로젝트 도중 CI를 이용하려고 테스트 코드를 짜던 중 DB에 접근하고 설정해줘야하는것이 까다로웠습니다. 그래서 이러한 데이터들을 코드에서 바로 지정해 쉽게 테스트를 구성 할 수 없을까? 라는 생각이 들었습니다. 그 때 눈에 들어온 방법이 "Mockito"입니다. Mockito는 Mock을 Java Mock객체를 이용한 테스트를 편하게 해주는 라이브러리입니다. 그럼 자세히 살펴보겠습니다. Mock이란? Mock은 Object입니다. 테스트를 수행 할 경우 "가짜"모듈을 생성하여 테스트의 효율성을 높이는 데사용되는 객체입니다. 그럼 왜 이런 걸 사용할까요? 예를 들어 DB에서 멤버를 꺼내오는 작업이 있다고 합시다. 근데 여기서 DB에서 조회기능을 수행, DB에 있는 ..
-
Java - Serialize(직렬화)Back-end/Java 2021. 8. 24. 09:22
이번 포스팅은 직렬화에 대한 이야기를 해보려고 합니다. 일단 이 부분이 왜 필요하다고 느꼈냐면 Java는 JVM위에서 작동합니다. 그러나 JVM에서 작동하던 객체를 다른 환경으로 옮길려면 어떻게 옮길까요? 컴퓨터는 저희가 코드를 짜듯이 보내면 알 수 없을 것입니다. 그래서 직렬화라는 기법을 이용하여 데이터를 주고 받을 수 있습니다. ❓ 왜 직렬화를 할까? 직렬화는 우리가 휴대전화로 통화를 한다고 생각하면 됩니다. 그때 목소리를 전기적인 신호로 바꿔 상대방에게 전달하고 그것을 받은 상대방은 그것을 해석해 주인에게 전달합니다. 직렬화는 정보를 자유롭게 옮길 수 있다는 큰 장점이 있습니다. 그리고 우리는 데이터를 값 형식 데이터와 참조 형식 데이터로 나눕니다. 참조 형식은 주소값(0x...)을 참조하는데 이러..
-
Github ActionTool 2021. 8. 22. 21:01
이번 "리팩터링" 스터디에서 Branch에 관한 이야기 중 CI/CD에 대한 내용이 나왔습니다. 협업 경험이 거의 없는 저로써는 이 내용이 도통 이해가 가지 않았습니다. 일단 Branch란 흔히 팀원들이 하나의 작업을 맡아서 작업하다가 어느 정도가 되면 Master에 Merge하여 각자 개발한 것을 합치는 방식입니다. 그러나 이것은 오픈 소스프로젝트정도에서만 유용한 방법이라고합니다. 하지만 어느 정도 규모가 있는 개발팀에서 개발할 경우에는 수시로 CI를 해줘야 된다고 하였습니다. 왜 그럴까요? 일단 현업에서는 기능을 개발 할 경우 1000줄 가량 늘어납니다. 이것을 한 번에 리뷰하고 이해한다는 건 어려운 일입니다. 그래서 지속적으로 Merge를 해줘야합니다. 즉 CI주기를 짧게 하는것이죠. 그럴 때 사용..
-
리팩터링 Chapter 2 - 리팩터링 원칙Computer기본지식/리팩터링 2021. 8. 22. 20:31
이번 챕터는 조금 근본적인 이야기가 많은 챕터였습니다. 그래서 정리를하며 내용을 이해하는 방식으로 책을 읽었습니다. 스터디 중 Branch와 YAGNI에 대해서 토론한 내용도 정리해봤습니다. 2-1 리팩터링의 정의 리팩터링(명사) : 소프트웨어의 겉보기 동작은 그대로 유지한 채, 코드를 이해하고 수정하기 쉽도록 내부 구조를 변경하는 기법 리팩터링(동사) : 소프트웨어의 겉보기 동작은 그대로 유지한 채, 여러가지 리팩터링 기법을 적용해 소프트웨어를 재구성하는 기법 누군가 "리팩터링하다가 코드가 깨져서 며칠이나 고생했다고 하면 그것은 리팩터링한 것이 아니다. 2-2 두 개의 모자 소프트웨어 개발의 목적을 '기능 추가'냐 아니면 '리팩터링'이냐를 확실히 구분합니다. 기능추가는 테스트를 추가하여 통과하는지 확인..