728x90
반응형

분류 전체보기 83

다이빙로그-2 / 오픈워터 - 개방수역 2

환경 날짜: 2023.06.22 나라: 필리핀 위치: 보홀 다이브 포인트: 푼토드 다이빙 센터: 오션플레이어 보홀 날씨: 구름 조류: 약함 시야: 매우 좋음 다이빙 휴식 시간: 51분 시작 시간: 12:01 시작 잔압: 200bar 최대 수심: 7.7m 평균 수심: 3.6m 다이브 시간: 21분 종료 시간: 12:22 종료 잔압: 140bar 탱크 크기: 11L 탱크 재질: 알루미눔 탱크 종류: Air 수온: 30도 장비 웨이트: 7kg(Belt-5kg, BCD-2kg) 슈트: Wet(3mm) 메모 1. 장비체결 2. BWRAF 3. 자이언트 스트라이드 입수 4. 수면에서 스노쿨에서 레귤레이터 교환 5. 다리 근육 경련 제거 - 스노쿨 끝을 한손으로 잡고 몸쪽으로 당기며 종아리 안마 6. 지친 다이버 끌..

다이빙로그-1 / 오픈워터 - 개방수역 1

환경 날짜: 2023.06.22 나라: 필리핀 위치: 보홀 다이브 포인트: 푼토드 다이빙 센터: 오션플레이어 보홀 날씨: 구름 조류: 약함 시야: 매우 좋음 다이빙 휴식 시간: - 시작 시간: 10:46 시작 잔압: 200bar 최대 수심: 7.6m 평균 수심: 4.3m 다이브 시간: 23분 종료 시간: 11:09 종료 잔압: 140bar 탱크 크기: 11L 탱크 재질: 알루미늄 탱크 종류: Air 수온: 30도 장비 웨이트: 7kg(Belt-5kg, BCD-2kg) 슈트: Wet(3mm) 메모 1. 장비체결 - 탱크 밸브 오른쪽에 두고 시작 - 탱크 마개 열고 O-ring 및 Air 체크 - BCD 탱크 연결 - 하네스가 탱크 몸통에 잘 안 들어갈 경우 물에 적신 후 시도 - 탱크 기체 배출구와 BCD..

파이브 라인스 오브 코드 - 리팩터링 깊게 들여다보기

리팩터링이란 코드가 하는 일을 변경하지 않고 더 나은 코드를 만드는 것 입니다. 코드 개선 더 나은 코드를 만들기 위해 코드를 개선해야 하는데 가독성과 유지보수성을 잘 챙겨야 좋은 코드라고 할 수 있습니다. 가독성 가독성은 의도를 전달하기 위한 코드의 성질로 가독성을 잘 챙긴 코드는 읽기 쉽고 작성자의 의도를 잘 파악하기가 쉽습니다. 유지보수성 유지보수성은 얼마나 많은 후보를 조사해야 하는지를 나타내는 성질입니다. 여기서 말하는 후보는 버그를 고치거나 기능을 추가하기 위해 어떤 코드가 어디에 있는지, 새로운 코드를 어디에 배치해야하는지에 대한 context를 말합니다. 유지보수성이 좋으면 조사해야 하는 context가 줄어들고 놓치는 부분이 없어서 또 다른 버그를 발생시키는 위험을 줄여줍니다. 일반적인 ..

개발/리팩터링 2023.06.19

(Test) Junit에서 isEqualTo 와 isSameAs

Kotlin에서 JUnit을 사용할 때 isEqualTo와 isSameAs 메서드의 차이점은 Java에서와 동일합니다. isEqualTo 메서드는 두 개의 객체가 내용(content) 면에서 동일한지 확인하는 데 사용됩니다. 객체의 값(value)을 비교하기 위해 equals 메서드를 사용합니다. 예를 들어, obj1과 obj2라는 두 개의 객체가 있다면, assertThat(obj1).isEqualTo(obj2)를 사용하여 obj1이 obj2와 동일하다고 단언할 수 있습니다. isSameAs 메서드는 반면에 두 개의 객체가 메모리 상에서 정확히 동일한 인스턴스를 참조하는지 확인합니다. 객체의 참조(reference)를 비교합니다. 예를 들어, obj1과 obj2라는 두 개의 객체가 있다면, assert..

개발/코틀린 2023.06.17

(Coroutine) Flow flatMapConcat, flatMapLatest, flatMapMerge

flatMapConcat, flatMapLatest, 그리고 flatMapMerge는 모두 Kotlin의 코루틴 라이브러리에서 제공하는 Flow 연산자들입니다. 이들 연산자들은 각각 다른 방식으로 upstream Flow의 각 요소를 다른 Flow로 변환하고, 이렇게 생성된 여러 Flow들을 하나의 결과 Flow로 연결합니다. flatMapConcat: flatMapConcat 연산자는 upstream Flow의 각 요소를 Flow로 변환하고, 이를 순차적으로 연결하여 결과 Flow를 생성합니다. 즉, 한 번에 하나의 내부 Flow만 처리하며, 새로운 내부 Flow는 이전의 내부 Flow가 완전히 수집된 후에만 수집됩니다. flatMapMerge: flatMapMerge 연산자도 upstream Flow..

개발/코틀린 2023.06.14

파이브 라인스 오브 코드 - 리팩터링 리팩터링하기

높은 품질의 코드는 유지 보수 비용을 줄이고, 오류를 줄이며, 개발자의 만족도를 향상시키고 리팩터링을 통해 높은 품질을 유지 할 수 있습니다. 리팩터링을 하기 위해선 스킬, 문화, 도구가 충분해야 합니다. 스킬은 코드의 문제점을 파악하기 위해 필요하고, 문화는 리팩터링에 대해 권장하는 것이고, 도구는 작업에 대한 안정성을 보장하는 무언가 입니다. 리팩터링이란 무엇인가? 리팩터링은 기능을 변경하지 않고 코드를 변경하는 것 입니다. 리팩터링을 해야 하는 이유는 이러합니다. 코드를 더 빠르게 만들기 위해 더 작은 코드를 만들기 위해 코드를 더 일반적이거나 재사용 가능하게 하기 위해 코드의 가독성을 높이고 유지보수를 용이하게 하기 위해 이를 다시 정리하면 좋은 코드란 사람이 읽기 쉽고, 유지보수가 용이하며, 의..

개발/리팩터링 2023.06.11

23년 야탑 과학화예비군훈련장에서 예비군훈련 동미참 - 주차, 훈련소집필증

안녕하세요. 작년 예비군에 이어서 올해도 역시나 예비군을 진행했습니다. https://dino-dev.tistory.com/3 22년 야탑 과학화예비군훈련장에서 예비군훈련 - 주차, 훈련소집필증 안녕하세요 저도 이번 22년에 야탑 과학화예비군훈련장에서 예비군 훈련을 받게 됐습니다. 7월 15일에 문자를 받고 8월 18일에 동미참 1차훈련을 진행했습니다. 평소에 10시쯤 일어나던 저에게 9시 dino-dev.tistory.com 예비군 장소는 22년과 동일하게 야탑 과학화예비군훈련장이었고 5월 2일에 문자를 받고 5월 30일부터 6월 2일까지 총 4일간 동미참으로 진행했습니다. 준비물 - 전투복, 전투화는 필수이고 모자는 필요 없습니다. - 신분증이 필요한데 없다면 핸드폰에 저장한 사본이나 pass 앱과 ..

일상 2023.06.03

(Plugin) Open current Activity

이번 포스팅에서는 제가 유용하다고 생각하는 플러그인중 하나인 Open current Activity 플러그인을 소개하고자 합니다. 특정 서비스를 오래동안 개발 하다보면 화면만 봐도 이게 어떤 Activity인지 이름을 바로 떠오르고 찾을 수 있을 것 입니다. 하지만 회사에 들어온지 얼마 안됐거나 다른사람이 작성한 화면인 경우 이 화면이 어떤 Activity인지 찾을 수 없습니다. 제가 이 플러그인을 알기 전에는 화면에 보이는 문구 하나를 골라서 전체 탐색하고 관련 Activity를 추적했습니다. 이러한 과정은 정말 불편하고 개발 생산성을 무척 떨어트리게 됩니다. Open current Activity 플러그인은 Mac 기준으로 command + f10, Windows 기준으로 Ctrl + f10 단축키를..

정수형 변수 스왑하기

public static void main(String[] args) { int a = 3; int b = 5; System.out.println(String.format("a: %d, b: %d", a, b)); // a: 3, b: 5 } 만약 이렇게 a가 3이고 b가 5인 변수에서 a와 b의 값을 스왑하기 위해서 어떻게 해야 할까요? temp 변수 사용하기 public static void main(String[] args) { int a = 3; int b = 5; int temp = a; a = b; b = temp; System.out.println(String.format("a: %d, b: %d", a, b)); // a: 5, b: 3 } 보통은 이렇게 temp 변수를 두고 1. temp..

개발/이것저것 2023.05.07

(Git) Git ignore 파일 생성기

이번 포스팅에서는 Git ignore 파일을 자동으로 생성해 주는 gitignore.io 사이트를 소개하려고 합니다.Git ignore 사용하는 이유Git ignore는 Git 저장소에서 추적하지 않을 파일이나 디렉터리를 지정하는 데 사용됩니다. Git ignore를 사용하면 Git 저장소에서 불필요한 파일이나 디렉터리를 제외할 수 있습니다. 보통 프로젝트에는 소스 코드 외에도 빌드 출력물, 로그 파일, 캐시 파일 등이 포함됩니다. 이러한 파일들은 보통 Git 저장소에 포함되지 않아야 합니다. Git ignore를 사용하면 이러한 파일들을 자동으로 Git 저장소에서 제외시킬 수 있습니다. 이렇게 하면 Git 저장소가 더욱 깨끗하고 관리하기 쉽게 유지됩니다. 또한 Git ignore는 프로젝트를 공유할 때..

개발/Git 2023.05.07
728x90
반응형