자바와 JUnit을 활용한 단위테스트_05
5장. 좋은 테스트의 FIRST 속성. 단위 테스트를 주의 깊게 사용했을 때 많은 이점을 얻을 수 있다. 하지만 테스트 또한 유지 보수해야 하는 또 다른 코드이다. 테스트를 빛나게 하고 값어치를 하는 테스트를 만드는 데 도움을 주는 핵심 개념과 전술에 대해 알아보도록 한다. "FIRST"의 원리. F는 fast, I는 isolated, R은 repeatable, S는 Self-validating, T는 timely. Fast: 빠르다. 빠른 테스트는 코드만 실행하며(로컬에 있는 로직 코드만 실행함) 소요 시간은 수 밀리초 수준이다. 느린 테스트는 데이터베이스, 네트워크 호출처럼 외부 자원을 다루는 코드를 호출하고 수십, 수백 밀리 초가 걸리기도 한다. 물론 시스템이 커지면 단위 테스트도 실행하는데 오래 ..
2022.06.05
자바와 JUnit을 활용한 단위테스트_04
4장. 테스트 조직. 4장에서는 테스트 코드를 잘 조직하고 구조화할 수 있는 JUnit 기능들을 소개한다. 준비-실행-단언을 사용하여 테스트를 가시적이고 일관성 있게 만드는 방법 메서드를 테스트하는 것이 아니라 동작을 테스트하여 테스트 코드의 유지 보수성을 높이는 방법 테스트 이름의 중요성 및 @Before @After 애너테이션 활용하여 공통 초기화 및 정리 코드 설정 방법 테스트를 가시적이고 일관성 있게 만드는 방법은 AAA로 작성하는 것이다. AAA는 준비(Arrange), 실행(Act), 단언(Assert)을 의미하는데 각각의 의미에 대해서 더 구체적으로 설명해보도록 하겠다. 먼저 준비는 말 그대로 테스트 코드 실행 전에 시스템이 적절 상태에 있는지 확인하는 것이다. 객체들을 생성하거나, 이것과 ..
2022.06.04
자바와 JUnit을 활용한 단위테스트_03
3장. JUnit 단언 깊게 파기. 3장에서는 햄크레스트라는 라이브러리를 활용하여 JUnit에서 다양한 방법으로 단언을 활용하는 거랑, 예외가 발생하는 테스트를 작성하는 방법에 대해서 알아본다. JUnit에서 단언은 테스트에 넣을 수 있는 정적 메소드 호출이다. 각 단언은 어떤 조건이 참인지 검증하는 방법인데 조건이 참이 아니면 테스트는 그 부분에서 멈추고 Failure를 보고한다. 가장 기본적인 단언인 assertTrue 사용을 위해 먼저 아래와 같은 코드를 import 해 주고 사용해주자. import static org.junit.Assert.*; 예시 코드는 아래와 같은데 Account 인스턴스가 먼저 초기화 되어 있어야 한다고 하니, 이거는 @Before 메소드에서 객채 생성하고 그것에 대한 참..
2022.04.09
DOIT! 반응형 웹 만들기_부록
부록 내용 중 첫 번째 반응형 웹사이트 테스트하기는, 제일 간단히 해 볼 수 있는 크롬 개발자 도구가 있고 안드로이드, xcode 등 시뮬레이터 이용하기가 있다. 두 번째로는 하위 브라우저에 대응하는 법. 익스플로러가 지원 종료된 것과 같이 이전 버전의 브라우저에서 새로 나온 요소나 속성을 지원하지 못하기 때문에, 이런 부분을 해결해 주어야 한다! 하위 브라우저에서 HTML5 요소를 지원하려면 자바스크립트 언어로 만들어진 지원 스크립트 파일 문서에 연결. CSS3 속성을 지원하지 않는다면 역시 지원 파일 연결해주기(요즘은 이런 일은 없을 듯 하지만..) behavior:url(PIE.htc); 미디어 쿼리 속성을 지원하지 않는다면 지원 스크립트 파일 연결해주기. 세 번째는 이미지 관련된 내용인데 pict..
2022.03.10
DOIT! 반응형 웹 만들기_셋째마당
둘째마당에서 플렉서블 박스를 활용해서 반응형 웹을 만들어보았다면, 셋째마당에서는 가변그리드, 미디어쿼리, 뷰포트를 활용해서 반응형 웹을 만들어 보도록 할 것이다. 이전과 동일하게 구조를 먼저 알아보고 각각의 폴더들이랑 index.html 파일 생성으로 시작! 앞선 둘째마당과 유사하게 기본 index.html 먼저 만들어주기. 다음은 기본 CSS 설정 파일인 reset.css파일 만들어주기. @charset "UTF-8"; /* 웹폰트 CSS */ @import url('https://fonts.googleapis.com/css?family=Montserrat|PT+Serif'); /* CSS 초기화 */ html, body, div, span, object, iframe, h1, h2, h3, h4, h..
2022.03.10
DOIT! 반응형 웹 만들기_둘째마당
앞선 포스팅의 반응형 웹 만들기 첫째 마당에선 핵심 기술들에 대해 살펴보았다면 둘째 마당에서는 직접 만들기. 웹사이트의 구조를 먼저 살펴보면 메인페이지와 서브페이지들은 아래와 같은 구조를 한다. 구조를 확인했다면 그다음은 폴더랑 기본파일 구성하기이다. 루트 폴더 하나 만들어주고(상위폴더) 그 아래다가 css, images, js, webfont 폴더를 차례로 만들어준다. 그다음 images 폴더 아래 s_images, p_images, favicon 폴더를 만들어주고 메인 페이지가 될 index.html, 서브페이지가 될 introduce.html, gallery.html, board.html 페이지도 차례로 만들어주면 끝! 폴더 구조는 위와 같은데 소스코드랑 이미지 많아서 이건 따로 뭐....올릴수가...
2022.03.08
DOIT! 반응형 웹 만들기_첫째마당
반응형 웹이란? PC, TV, 내비게이션, 스마트 기기 등 기기마다 또는 환경마다 최적화된 웹사이트를 제공해주는 것. 장점으로는 유지보수가 간편하다는 점, 반응형이기 때문에 마케팅에 유리하다는 점을 들 수 있을 것 같다. 그렇다면 유행이라고 무조건 반응형으로 만들어야 할까? 아니다. 상황에 따라 모바일 웹처럼 별도의 사이트를 만드는 것이 더 효율적일수도 있기 때문에 UX 고려해서 잘 만들자! 핵심 기술 - 가변 그리드(Fluid Grid) 가변 그리드란 웹사이트를 제작할 때 화면의 크기에 관계없이 늘어나거나 줄어들게 픽셀 대신 %로 제작하는 기술. 아래 이미지처럼 가로 너비에 따라 폭에 맞게끔 박스 크기가 줄어든 것을 볼 수 있다. 핵심 기술 - 미디어쿼리(Media Queries) 미디어쿼리란 컴퓨터나..
2022.03.08
자바와 JUnit을 활용한 단위테스트_02
2장. JUnit 진짜로 써 보기. 이 장에서는 코드를 분석해서 코드의 한 가지 경로를 커버하는 테스트를 작성해볼거고, 코드를 따라 두 번째 경로를 검증하는 두 번째 테스트를 작성해볼거고, 테스트 구조도 살펴보고 공통으로 사용되는 초기화 코드를 한 곳에 모을 수 있는 @Before annotation에 대해서도 알아보도록 한다. 구인자와 구직자는 둘 다 다수의 객관식 혹은 yes-no 질문에 대답을 하는 프로파일을 생성한다. 웹사이트는 다른 측 기준에 맞는 프로파일로 점수를 매기고 고용주와 고용자 모두의 관점에서 최상의 매치를 보여준다. Profile 클래스를 먼저 작성해보자. 코드설명먼저 하자면 Profile 클래스는 어떤 사람이 회사 혹은 구직자에게 물어볼 수 있는 적절한 질문에 대한 답변을 담고 있..
2022.02.10
자바와 JUnit을 활용한 단위테스트_01
올해 목표 중 하나가 개발관련 책같은거도 보면서 지식쌓기..? 알야아 할 것들이 많다ㅜㅜㅜㅜㅜ 내 첫 책은 자바와 Junit을 활용한 실용주위 단위테스트라는 책이다. 총 14챕터로 이뤄져있으니 당연 내 포스팅도 14개가 올라갈 예정이다! 1장. 첫 번째 JUnit 테스트 만들기. 테스트코드 작성해보면서 할거지만 일단 책에 나와있는 깃허브 주소에서 클론받았다. 마이 맥북에서 인텔리제이 설치해서 해볼라했는데 일단 전자정부프레임워크 3.9버전에서 해보는거로! 책에 나와있든 이클립스든 전자정부든 IDE는 각자 편한데로 해보면 될 듯 하다. ScoreCollection이라는 작은 클래스 테스트. 이 클래스는 Scoreable 객체의 컬렉션 평균을 반환하는 것으로 점수를 가진다. 테스트하려는 코드는 아래와 같다. ..
2022.02.05