김누누
close
프로필 배경
프로필 로고

김누누

  • 분류 전체보기 (252)
    • Deep Dive (49)
      • Kotlin Coroutine (18)
      • Kotlin Flow (6)
      • Test Code (12)
      • Android Jetpack Compose (9)
      • Flutter (4)
    • [Android] Architecture (14)
      • Architecture Pattern (5)
      • [Android] Multi Module (3)
      • [Android] DI (4)
    • [Kotlin] Tech,Study (18)
    • [Android] Tech,Study (65)
      • [Android] Trouble Shoot (20)
      • [Android] Custom (9)
    • Algorithm (13)
    • Computer Science (29)
      • 독서 (8)
      • 프로그래밍 (14)
      • 운영체제 (4)
      • 자료구조 (1)
      • 네트워크 (1)
    • GitHub (1)
    • Python,Django,DRF (13)
    • IOS,Swift (10)
    • 회고 (7)
  • 깃허브
  • 글쓰기
  • 설정
디미터의 법칙

디미터의 법칙

💡 리뷰 활동을 하면서 디미터의 법칙을 상기시켜보라는 리뷰를 받게 되었습니다. 객체 지향 프로그래밍에서 중요하게 적용되는 디미터의 법칙에 대하여 학습하였습니다. 디미터의 법칙?Law of Demeter어떤 객체가 다른 객체에 대해 지나치게 많이 알다보니, 결합도가 높아지고 좋지 못한 설계가 발생합니다.이를 개선하고자 객체에게 내부 값을 숨기는 대신 함수를 공개하도록 하는 것이 디미터의 법칙입니다.다른 객체가 어떠한 내부 값을 가지고 있는지 속사정을 몰라아 햔다는 뜻으로, 아래와 같이 불리기도 합니다.Don’t Talk to Stranger (낯선 이에게 말하지 마라)Principle of lesat knowledge (최소 지식 원칙)또한 직관적인 이해를 위해서 여러 개의 .(도트)를 사용하지 않도록 ..

  • format_list_bulleted Computer Science/프로그래밍
  • · 2024. 6. 23.
  • textsms
컴파일과 디컴파일

컴파일과 디컴파일

💡 프로그래밍 언어, 특히 Java 언어에서 사용되는 Compile, Decompile에 대한 내용과 코틀린 코드를 자바 코드로 Decompile하는 과정을 실습하였습니다. Compile?사람이 이해하는 언어를 컴퓨터가 이해하는 언어로 바꾸는 과정을 컴파일이라고 합니다.0과 1로 모든 명령어를 이해할 수 있는 컴퓨터에게 언어를 이해 시켜줄 수 있도록 번역해주는 과정을 거칩니다.또한 원시코드를 목적코드를 바꿔주는 과정을 컴파일이라 합니다.원시코드 : 인간이 알아볼 수 있는 코드 (.java..)목적코드 : 컴퓨터가 이해하는 코드, 기계어 (.class..)컴파일 과정이 필요한 이유JVM에서는 byte code(.class)를 실행할 때 compile 과정에서 진행한 일을 다시 진행하는 과정 없이 실행만 ..

  • format_list_bulleted Computer Science/프로그래밍
  • · 2024. 6. 21.
  • textsms
Solid 원칙

Solid 원칙

💡 객체 지향 프로그래밍의 5가지 핵심 원칙인 SOLID에 대하여 학습하였습니다.객체지향 프로그래밍 5 설계 원칙 (SOLID)SOLID란 객체 지향 프로그래밍을 하면서 지켜야하는 5대 원칙으로 SRP, OCP, LSP, DIP, ISP의 앞글자를 따서 만들었습니다.SOLID 원칙을 철저히 지키면서 시간이 지나도 변경에 용이하고, 유지보수와 확장성이 쉬운 소프트웨어를 개발하는 것이 중요합니다!SRP(Single Responsibility Principle): 단일 책임 원칙OCP(Open Closed Principle): 개방 폐쇄 원칙LSP(Listov Substitution Principle): 리스코프 치환 원칙ISP(Interface Segregation Principle): 인터페이스 분리 원..

  • format_list_bulleted Computer Science/프로그래밍
  • · 2024. 6. 19.
  • textsms
응집도와 결합도

응집도와 결합도

💡 객체지향 & 소프트웨어에서 중요한 응집도와 결합도에 대하여 학습하였습니다.소프트웨어 모듈 독립성소프트웨어에서 크고 복잡한 문제가 발생했을 때, 문제를 작은 부분으로 쪼개어서 하나씩 풀어나가야 합니다.이런 경우 큰 문제를 작은 부분으로 쪼개어 해결하는 것을 모듈화라고 하며, 소프트웨어를 각 기능별로 나누어진 소스 단위를 뜻합니다.독립적으로 컴파일 가능한 프로그램 혹은 하나의 함수나 클래스도 모듈이 될 수 있습니다.좋은 소프트웨어 일수록 모듈의 독립성이 높다라고 표현할 수 있습니다.좋은 모듈화는 목적에 맞는 기능만으로 모듈을 나누게 됩니다.각각의 모듈은 주어진 기능만을 독립적으로 수행하기 때문에 재사용성이 높고 코드의 이해와 수정이 용이합니다.해당 모듈을 수정하더라도 다른 모듈에 끼치는 영항이 적으며,..

  • format_list_bulleted Computer Science/프로그래밍
  • · 2024. 6. 19.
  • textsms
좋은 코드, 나쁜 코드 5장

좋은 코드, 나쁜 코드 5장

5장 가독성 높은 코드를 작성하라서술형 명칭 사용서술적이지 않은 이름은 코드를 읽기 어렵게 만든다.주석문으로 서술적인 이름을 대체할 수 없다.주석문에 대한 유지보수도 필요해진다.클래스가 수백 줄의 길이를 가진다면, 주석을 찾기 위해 스크롤 해야한다.중복된 주석문은 유해할 수 있다.코드가 수행하는 작업을 설명하는 주석문을 추가한 경우 코드가 변경하면 주석문을 수정해야 하는 상황이 생긴다.주석문이 이해하기 어려운 코드가 있다.String generateId(String[] data) { // data[0]은 성이고, data[1]부터는 이름이다}헬퍼 함수를 사용하여 가독성이 높은 코드를 쉽게 작성할 수 있다.String generateId(String[] data) { return firstName(dat..

  • format_list_bulleted Computer Science/독서
  • · 2024. 6. 13.
  • textsms
좋은 코드, 나쁜 코드 4장

좋은 코드, 나쁜 코드 4장

4장시스템이 복구할 수 있는 오류와 복구할 수 없는 오류를 구분한다.신속하게 실패하고 분명하게 실패한다오류를 전달하기 위한 다양한 기법과 선택을 위한 고려 사항복구 가능성복구 가능한 오류네트워크 오류자신의 코드가 의존하는 서비스에 연결하지 못한 경우 사용자가 몇 초 기다렸다가 다시 시도하거나, 네트워크 연결을 확인하도록 요청할 수 있다.중요하지 않은 작업 오류서비스 사용에 대한 어떤 통계를 기록하는 부분에서 오류가 발생한다면 실행을 계속해도 무방하다.복구할 수없는 오류오류가 발생하고 시스템이 오류를 복구할 수 있는 합리적인 방법이 없는 경우코드와 함께 추가되어야 하는 리소스가 없다.다음 예와 같이 어떤 코드가 다른 코드를 잘못 사용한다.잘못된 입력 인수로 호출일부 필요한 상태를 사전에 초기화하지 않음신속..

  • format_list_bulleted Computer Science/독서
  • · 2024. 6. 3.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • 5
  • navigate_next
전체 카테고리
  • 분류 전체보기 (252)
    • Deep Dive (49)
      • Kotlin Coroutine (18)
      • Kotlin Flow (6)
      • Test Code (12)
      • Android Jetpack Compose (9)
      • Flutter (4)
    • [Android] Architecture (14)
      • Architecture Pattern (5)
      • [Android] Multi Module (3)
      • [Android] DI (4)
    • [Kotlin] Tech,Study (18)
    • [Android] Tech,Study (65)
      • [Android] Trouble Shoot (20)
      • [Android] Custom (9)
    • Algorithm (13)
    • Computer Science (29)
      • 독서 (8)
      • 프로그래밍 (14)
      • 운영체제 (4)
      • 자료구조 (1)
      • 네트워크 (1)
    • GitHub (1)
    • Python,Django,DRF (13)
    • IOS,Swift (10)
    • 회고 (7)
전체 방문자
오늘
어제
전체
태그
  • #코루틴
  • #Coroutine
  • #compose
  • #알고리즘
  • #ViewModel
  • #안드로이드
  • #코틀린
  • #kotlin
  • #Android
  • #우테코
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바