Sorry. for koreans only. I'll add english short description. or just visit http://wtfjs.com
아오 썅.
정정사항입니다.
객체 동일비교는 항상 valueOf 결과물로 나온 비교로 하는 데다가,
객체와 배열은 valueOf 해봐야 객체로 나오기 때문에
객체와 배열은 == 하나 === 하나 같은 비용으로 비교합니다.
[1,2,3]==[1,2,3] 은 false가 되므로
[1,,,2]==[1,undefined,undefuned,2] 는 무조건 false로 나옵니다.
자바개발시 모델객체를 생성할 때 setter/getter/toString/hashCode/equals 메소드를 만드는데 이럴 경우 클래스 파일의 소스가 길어지고 복잡해지는데, 이를 해결하기 위해 롬복(Lombok)을 사용하죠, 자바개발 하시는 분이라면 알아두시면 유용하리라 생각 됩니다.
Sorry. for koreans only. I'll add english short description. or just visit http://wtfjs.com
아오 썅.
정정사항입니다.
객체 동일비교는 항상 valueOf 결과물로 나온 비교로 하는 데다가,
객체와 배열은 valueOf 해봐야 객체로 나오기 때문에
객체와 배열은 == 하나 === 하나 같은 비용으로 비교합니다.
[1,2,3]==[1,2,3] 은 false가 되므로
[1,,,2]==[1,undefined,undefuned,2] 는 무조건 false로 나옵니다.
자바개발시 모델객체를 생성할 때 setter/getter/toString/hashCode/equals 메소드를 만드는데 이럴 경우 클래스 파일의 소스가 길어지고 복잡해지는데, 이를 해결하기 위해 롬복(Lombok)을 사용하죠, 자바개발 하시는 분이라면 알아두시면 유용하리라 생각 됩니다.
탑크리에듀교육센터(www.topcredu.co.kr)제공
스프링프레임워크 & 마이바티스(Spring Framework, MyBatis)
17번째 자료입니다. 참고하시어 많은 도움되셨길 바랍니다.
교육 및 수강문의/기타문의사항은 홈페이지(www.topcredu.co.kr)를 통하여 하실 수 있습니다.^^
탑크리에듀교육센터(www.topcredu.co.kr)제공
스프링프레임워크 & 마이바티스(Spring Framework, MyBatis)
21번째 자료입니다. 참고하시어 많은 도움되셨길 바랍니다.
교육 및 수강문의/기타문의사항은 홈페이지(www.topcredu.co.kr)를 통하여 하실 수 있습니다.^^
탑크리에듀교육센터(www.topcredu.co.kr)제공
스프링프레임워크 & 마이바티스(Spring Framework, MyBatis)
16번째 자료입니다. 참고하시어 많은 도움되셨길 바랍니다.
교육 및 수강문의/기타문의사항은 홈페이지(www.topcredu.co.kr)를 통하여 하실 수 있습니다.^^
탑크리에듀교육센터(www.topcredu.co.kr)제공
스프링프레임워크 & 마이바티스(Spring Framework, MyBatis)
17번째 자료입니다. 참고하시어 많은 도움되셨길 바랍니다.
교육 및 수강문의/기타문의사항은 홈페이지(www.topcredu.co.kr)를 통하여 하실 수 있습니다.^^
탑크리에듀교육센터(www.topcredu.co.kr)제공
스프링프레임워크 & 마이바티스(Spring Framework, MyBatis)
21번째 자료입니다. 참고하시어 많은 도움되셨길 바랍니다.
교육 및 수강문의/기타문의사항은 홈페이지(www.topcredu.co.kr)를 통하여 하실 수 있습니다.^^
탑크리에듀교육센터(www.topcredu.co.kr)제공
스프링프레임워크 & 마이바티스(Spring Framework, MyBatis)
16번째 자료입니다. 참고하시어 많은 도움되셨길 바랍니다.
교육 및 수강문의/기타문의사항은 홈페이지(www.topcredu.co.kr)를 통하여 하실 수 있습니다.^^
앱 디자인 시작하기
Starting App Design
2014. 9. 11
이 강의는 앱 디자인을 시작하는
디자이너를 위한 강의입니다.
강의 순서
1. 강의에 들어가며
2. 앱 디자인 시작하기
3. Case Study
4. 작업하기
5. 마치며
- 강의 페이지: http://isangho.com/study/appdesign
- SlideShare: https://www.slideshare.net/SanghoLee1/ss-38908104
- 비트코인 기부하기: http://daramghaus.com/donate/bitcoin
- 이메일: isangho@me.com
<p>
[데브멘토 동영상] 모바일 웹/앱 서비스 스타트업</p>
<p>
강미나 메타브레인 대표</p>
<p>
아이폰 앱<my>가 힛트칠 수 있었던 이유</my></p>
<p>
<my>
<p>
`스마트폰 빅뱅에 따른 모바일 서비스 기획 및 운영 전략`</p>
</my></p>
<p>
</p>
탑크리에듀교육센터(www.topcredu.co.kr)제공
스프링프레임워크 & 마이바티스(Spring Framework, MyBatis)
19번째 자료입니다. 참고하시어 많은 도움되셨길 바랍니다.
교육 및 수강문의/기타문의사항은 홈페이지(www.topcredu.co.kr)를 통하여 하실 수 있습니다.^^
5. 하지만 무시하고 테스트
안 할 수도 없는 없다!
Why?
대부분 데이터 베이스가 어플리케이션에 필수 적인 부분임
6. 데이터베이스와 엮이면 어려운 점
테스트 픽스처의 영속성이
변덕스러운 테스트/애매한 테스트
반복 안 되는 테스트/서로 반응하는 테스트
DB엯결을 위해 픽스처를 공유하여
엮인 테스트 (서로 반응하는 테스트)
DB 샌드박스가 없다면 테스트 젂쟁이 발생됨
DB엯결에 대한 커다란 일반 픽스처를 유발시켜
테스트에서 명시하는 것을 알기 어렵게 함
7. 데이터베이스 없이 테스트 하기
레이어 소프트웨어 아키텍처를 사용한다면
데이터베이스를 사용하지 않고 비지로직을 테스트함
How?
비즈니스 로직의 하위 레이어를 테스트 대역으로 사용
14. 저장 프로시저 테스트
복잡한 로직이 들어가 있는 테스트에 대해서는
항상 저장 테스트 작성
일반적 테스트처럼
호출 조건과 기대 결과를 나연함
15. 저장 프로시저 테스트
데이터 베이스 내 저장 프로시저 테스트
프로시저 언어로 테스트 작성
데이터 베이스 개발팀에서 직접 작성할 경우
최근 DB는 C#과 JAVA등도 사용 가능함
원격 저장 프로시저 테스트
원격에서 프로시저 호출을 수행
프로시저 호출의 호출과 결과를 검증하는 왕복 테스트
18. 테이블 삭제 해체
트랜젝션 롤백으로 처리가 불가능 한 경우 사용됨
매우 긴 트랜젝션 유발
롤백을 하여도 남아 있는 픽스처가 생김
테스트 실행기별 데이터베이스 스키마로 사용되는 경우 이상적
트랜잭션이 지원되지 않는 데이터 베이스인 경우
델타 단언문을 사용하면 별도 해제가 필요하지 않을 수도 있음
19. 테이블 삭제 해체
테이블 데이터 삭제시에 엯관된 테이블도 고려 해야 함
구현 방법(P.837)
테이블 삭제 해체 테스트
지엯 해체 테스트
SQL로 테이블 삭제 해체
ORM으로 테이블 삭제 해체
24. 트랜잭션 롤백 해체
데이터 베이스 트랜잭션 롤백
[TestFixture]
public class TransactionRollbackTearDownTest [Test]
{ public void AnNUnitTest()
private SqlConnection _Connection; {
private SqlTransaction _Transaction; const string C_INSERT_SQL =
[Setup] "INSERT INTO Invoice(Amount, Tax, CustomerId)" +
public void Setup() " VALUES({0}, {1}, {2})";
{ SqlCommand cmd = _Connection.CreateCommand();
string dbConnectionString = ConfigurationSettings. cmd.Transaction = _Transaction;
AppSettings.Get("DbConnectionString"); cmd.CommandText = string.Format(
_Connection = new SqlConnection(dbConnectionString); C_INSERT_SQL,
_Connection.Open(); new object[] {"100.00", "7.00", 2001});
_Transaction = _Connection.BeginTransaction(); // Exercise SUT
} cmd.ExecuteNonQuery();
[TearDown] // Verify result
public void TearDown() // etc.
{ }
_Transaction.Rollback(); {
_Connection.Close();
// Avoid NUnit "instance behavior" bug
_Transaction = null;
_Connection = null;
}
25. 데이터베이스로 테스트 하기 (한번 더!)
가능한 레이어로 나누고 실제 데이터 베이스에 접근하지 않도록 하자
데이터 베이스엯동은 ‘가능한 적게, 하지만 너무 적지도 않게’
고객테스트 중 대표적인 것 하나 정도 뽑아 테스트
26. 정리
대부분 소프트웨가 데이터 베이스와 엯계 되므로 테스트는
필수 불가견 하다.
데이터 베이스와 엯동 되는 테스트는 매우 느리다
가능한 레이어 아키텍트들을 적용하여 실제 데이터 베이스와 통신하지
않도록 구성을 해야된다.
직접 데이터 베이스와 통신을 해야 된다면 다음의 패턴을 사용 하자
데이터베이스 샌드 박스
저장프로시저 테스트
테이블 삭제 해제
트랜잭션 롤백 해제