코로나 감염 이후 무너진 생활패턴과 삶에 대해서 답답함을 느끼고 있던 중, 주말에 우연히 'Return to Space' 라는 넷플 다큐를 봤다. 좋은 책을 보고 나면 그렇듯, 이 영상을 보고 난 후 세상이 다르게 보였고, 마음한켠의 번뜩임이 들었다. 나는 세상에 내가 존재하지 않는 것보다 존재하는 것이 더 나은 세상을 만드는 삶이 내가 추구 하는 삶이자, 의미라 생각한다. 막대한 부와 힘을 지니고도 세상을 더 좋은 방향으로 개척해 나가는 사람들이있는데, 소아마비와 말라리아 등 여러 질병과 빈곤을 해결해 나가는 빌게이츠, 화성에 식민지를 건설하고 달에 재생가능한 starship으로 사람을 보내는 것을 목표로하는 일론머스크는 그래서 존경스럽다. 20년 초, 장이 좋은 탓에 전역하고나서 한창 주식을 하는것이..
1. 목표 버그로부터 안전한 코드를 위해 널리 사용되는 실용적인 테크닉인 testing에 대해서 다뤄보고자 한다. testing의 가치를 이해하고 test-first programming에 대해서 알아볼 것이다. input과 output space에 따라 메소드를 구획화 하여 test suite를 디자인할것이다. code coverage를 측정하여 test suite를 평가하고 언제 blackbox testing과 whitebox testing을 사용해야 하는지, unit test와 integration test, automated regression testing을 사용해야 하는지 알아 볼 것이다. * Test suite란 ? 개별 테스트 케이스들을 하나로 묶은 것이다. 2. 소프트웨어 테스팅이 어려운..
람다식과 Optional, Stream은 정말 한 세트같다는 느낌이 든다. 그래서 현재 람다식 공부를 깊게 하지 않은 나에게, 람다식을 필수적으로 공부해서 잘 사용할 수 있게 만들어야 겠다는 생각이 든다. 먼저 Optional 클래스가 Java 8 버전부터 등장했는데 왜 Optional이라는 클래스가 추가 되었으며, 이 클래스가 하는 역할이 무엇이라서 어떤 경우에 쓸수 있는지를 알아보고자 한다. 1. Optional 클래스란 Optional이라는 의미에서도 알수 있다싶이, "존재 할수도 있지만 안 할 수도 있는 객체". 즉 " Null이 될수도 있는 객체"를 감싸고 있는 Wrapper 클래스를 말한다. Optional 클래스를 살펴 본다면, Optional는 제네릭 클래스로 T 타입의 객체를 감싸는 래퍼..
1. Stream이란 스트림이란 영어의 뜻처럼 데이터의 연속적인 흐름을 말한다. 스트림이 JDK 1.8부터 등장하여 사용 방법이 다 다른 다양한 Collection Framework들을 표준화 하여 다루는것이 가능하게 해주었다. 스트림은 데이터 소스를 표준화된 방법으로 다루기 위해서 등장 하였고, 안에는 데이터를 다루는데 자주 사용되는 메소드들을 정의해 놓았다. 데이터 소스를 추상화 하여 데이터 소스가 무엇이던 간에 같은 방식으로 다룰 수 있게 되었고, 코드의 재사용성이 높아지는 결과를 가져오게 되었다. 예를들어, String[] strArr = {"Apple", "Banana", "Orange"}; List strList = Arrays.asList(strArr); //출력 Arrays.sort(str..
git push를 할때 다음과 같이 terminal에서 내 아이디와 깃헙에서 발급한 token을 입력해야 한다. 이렇게 매번 commit 할때 마다 토큰번호를 입력해만 하고 토큰을 잊으면 다시 새로운 토큰을 발급해야하고, 그러지 않기 위해 어디에 복사 해놔야 하고 매번 push때마다 토큰을 복사-붙혀넣기 하는 것이 여간 귀찮은 일이 아니다. SSH를 이용하면 그럴 필요가 없어진다고 한다. 1. SSH란 SSH는 Secure Shell의 줄임말로 보안이 강화된 안전한 방법으로 정보를 교환하는 방식입니다. SSH에서는 기본적으로 Private key와 Public key를 한 쌍으로 묶어서 컴퓨터를 인증한다. public key는 말 그래도 외부에 공개되는 키이고 private key는 아무도 알 수 없게 ..
지난 강의에서, 좋은 소프트웨어의 세 가지 특성에는 다음과 같은 3가지가 있었다. Safe from bugs (버그로 부터 안전해야 한다.) Easy to understand (다른 사람도 이해하기 쉬워야 한다.) Ready for change (소프트웨어는 항상 바뀌기 때문에 변화에 준비되어야 한다.) 이 세 가지 특성을 목적으로 하여, 이번 강의에서는 좋은 코드의 일반적인 원칙에 대해서 설명할 것이다. 1. 코드리뷰란 무엇인가 코드리뷰란 코드의 원작자가 아닌 사람들에 의해서 작성된 소스코드의 체계적이고 세심한 연구를 말한다. 코드리뷰에는 두가지 목적이 있다. 코드를 개선시키는 목적 (버그를 찾고 명확하게 코드를 작성하고, 프로젝트의 표준 스타일과 일관되는지를 체크) 프로그래머를 개선시키는 목적 (새로..
이 강의를 듣게 된 이유 중 하나는, 교과서적으로 software 구조의 기초를 알고 싶었고, testing과 좋은 코드를 작성하는 방법에 대해서 알려 주기도 하고, Java로 진행되기 때문에 이 수업을 https://openlearninglibrary.mit.edu/를 통해서 수강하기로 계획했다. 오늘 들은 강의에서는 2가지 주제를 메인으로 다룬다. static typing 좋은 소프트웨어의 큰 세가지 특성 이 수업을 통해서 어떻게 좋은 코드를 작성하는건지에 대해 배우는 것이기 때문에, 좋은 소프트웨어의 큰 세가지 특성은 다음과 같다. 1. bug로 부터 안전함 2. 다른 프로그래머가 이해하기 쉬운 코드 작성 3. 미래의 변화에 대한 준비가 되어 있어야 한다. Hailstone Sequence로 보는 ..
- Total
- Today
- Yesterday