전체 글
-
[Flutter] Stateless Widget / Stateful Widget📖 개발 공부/flutter 2023. 7. 22. 17:44
앱 생명 주기의 생성, 렌더링, 업데이트 및 종료 방식을 알아야지 앱 생명 주기를 기반으로 코드를 이해하는 데 도움이 된다. Flutter의 모든 것이 Widget으로 이루어져 있어 생명 주기에 앞서 Flutter의 Widget에 대해 알아보자. Widget Flutter에는 크게 2가지 유형의 위젯이 있다. Stateless Widget Stateless Widget은 런타임에 크게 변경되지 않는 위젯이다. 그렇기 때문에 상태(State)를 다룰 필요가 없으며, 영구적으로 변하지 않는 변수, 버튼, 심볼 등과 같은 표현 요소를 나타내거나 앱에서 데이터를 가져오는 데에 쓰인다. 이러한 위젯은 build 메서드를 오버라이드하여 위젯을 반환한다. Stateless 위젯은 UI가 데이터의 변경에 의존하지 않는..
-
[클린코드] 오류 처리📚 개발 도서/클린코드 2023. 7. 18. 00:34
깨끗한 코드와 오류 처리는 확실히 연관성이 있다. 오류처리는 중요하다. 하지만 오류 처리 코드로 인해 프로그램 논리를 이해하기 어려워진다면 깨끗한 코드라고 부르기 어렵다. 오류 코드보다 예외를 사용하라 (3장 함수에도 나왔다. 오류 코드보다 예외를 사용하라! → 오류 코드 대신 예외(ex. try/catch)를 사용하면 오류 처리 코드가 원래 코드에서 분리되어 코드가 깔끔해진다.) [클린코드] 함수 3-2 함수가 읽기 쉽고 이해하기 쉬운 이유는 무엇일까? 의도를 분명히 표현하는 함수를 어떻게 구현할 수 있을까? 함수에 어떤 속성을 부여해야 처음 읽는 사람이 프로그램 내부를 직관적으로 파 ayoung0073.tistory.com 논리가 오류 처리 코드와 뒤섞이지 않는다. (코드품질 굳) Try-Catch-..
-
[클린코드] 객체와 자료구조📚 개발 도서/클린코드 2023. 7. 16. 17:35
변수를 비공개로 정의하는 이유가 있다. 남들이 변수에 의존하지 않게 만들고 싶어서다. 그렇다면 왜 수많은 프로그래머가 조회함수와 설정함수를 당연하게 공개하여 비공개 변수를 외부에 노출할 것인가?라는 질문으로 시작한다. 자료 추상화 변수 사이에 함수라는 계층을 넣는다고 구현이 저절로 감춰지지는 않는다. 구현을 감추기 위해서는 추상화가 필요하다. 추상 인터페이스를 제공해 사용자가 구현을 모른 채 자료의 핵심을 조작할 수 있어야 진정한 의미의 클래스다. 자료를 세세하게 공개하기보다는 추상적인 개념으로 표현하는 편이 좋다. 아무 생각 없이 조회/설정 함수를 추가하는 방법이 가장 나쁘다. 개발자는 객체가 포함하는 자료를 표현할 가장 좋은 방법을 심각하게 고민해야 한다. 자료/객체 비대칭 객체 vs 자료구조? 객체..
-
[핵심만 콕! 쿠버네티스] 쿠버네티스 첫만남 / 도커와 비교한 쿠버네티스 명령어 총정리(feat. kubectl)📚 개발 도서/핵심만 콕! 쿠버네티스 2023. 7. 15. 22:59
이번 글에서는 도커 기초 에 이어 쿠버네티스 클러스터와 대화하는 방법을 알아보자! 쿠버네티스 기본/고급 명령어를 정리해볼 예정이다. 쿠버네티스 클러스터를 컨트롤하기 위해 클라이언트 툴인 kubectl 명령툴을 사용한다. 쿠버네티스 API 서버는 REST API로 통신을 한다. 기본 명령 기본적으로 도커 컨테이너와 마찬가지로 컨테이너의 실행과 삭제, 조회 등을 할 수 있다. 컨테이너 실행 # 이름의 컨테이너를 를 이용하여 생성하라 kubectl run --image 도커 명령 비교 docker run 컨테이너 조회 # 컨테이너 확인 kubectl get pod NAME READY STATUS RESTARTS AGE mynginx 1/1 Running 0 90s # 특정 pod 상태 정보를 더 자세히 보고 ..
-
[Git] Git 커밋 되돌리는 다양한 방법 (git reset / git revert)📖 개발 공부/git 2023. 7. 14. 22:47
Git으로 작업을 할 때 버그가 생기거나, 이미 작업했던 커밋 중 수정하고 싶은 경우 커밋 내용을 되돌리거나(git revert), 커밋을 아예 취소하는(git reset) 경우가 종종 발생한다. 이 글에서는 실습과 함께 되돌리거나/취소하는 명령어에 대해 알아보려고 한다. 명령어를 알아보기 전, 실습을 이해하기 위해 간단한 커밋 로그들을 보고가자! commit b366d6832cc4ef88196ad4ba8850b71ce8ba60a8 (HEAD -> main) Author: ayoung0073 Date: Fri Jul 14 22:14:54 2023 +0900 test3.txt 추가 commit aad06133842414db6a3e9bcab1ead015e0a168ab Author: ayoung0073 Dat..
-
[핵심만 콕! 쿠버네티스] 도커 기초 (도커 소개 및 명령어 총정리)📚 개발 도서/핵심만 콕! 쿠버네티스 2023. 7. 12. 23:53
도커 소개 도커는 가상실행 환경을 제공해주는 오픈소스 플랫폼이다. 이 가상실행 환경을 컨테이너라고 부른다. 도커 플랫폼이 설치된 곳이라면 컨테이너로 묶인 애플리케이션을 어디서든 실행할 수 있는 장점을 가진다. 클라우드 컴퓨팅으로 흐름이 넘어오면서, 서비스를 빠르게 배포할 수 있는 방법을 도커가 제공해준다. 한번 만들어진 이미지는 온프레미스 서버든 클라우드 서버든 상관없이 언제나 동일하게 동작하기 때문에, 온프레미스와 클라우드 간 간극을 줄여줬다. 표준화 이식성: 도커 플랫폼 위에서 실행된다면 동일한 실행 환경으로 프로세스를 작동시킬 수 있다. 가볍다: 도커는 실행되는 애플리케이션별로 커널을 공유해서, 다른 가상화 제품에 비해 가볍다. 강한 보안: 컨테이너라는 고립된 환경에서 실행되므로 보안에 유리하다. ..
-
[Kubernetes] sidecar pattern (사이드카 패턴)📖 개발 공부 2023. 7. 10. 00:49
사이드카 패턴은 기본 어플리케이션 컨테이너와 독립적으로 동작하는 별도의 컨테이너를 붙이는 패턴이다. 위의 사진에 나온 오토바이에 연결된 사이드카를 붙이든 떼어내든 상관없이 오토바이에 영향을 주지 않는다. 이와 같이 기본 애플리케이션 컨테이너의 변경이나 수정 없이 독립적으로 동작하는 컨테이너를 붙였다 뗐다 할 수 있다. 패턴에서 사이드카는 기본 애플리케이션에 연결되고 애플리케이션에 대한 지원 기능을 제공한다. 또한 기본 애플리케이션 생명 주기와 동일해서 기본 애플리케이션과 함께 만들어지고 종료된다. 사이드카 패턴을 이용하지 않았을 때통합되어 있는 경우 위에 보이는 사진 설명에서 logging, proxy 기능들을 하나의 애플리케이션에서 모두 들어있다해보자.이는 애플리케이션과 동일한 프로세스에서 실행되어 공..
-
비동기 asynchronous📖 개발 공부 2023. 7. 2. 16:52
쉬운코드님의 유튜브 영상 보면서 정리한 내용입니다. 3가지 관점으로 asynchronous의 개념을 알아보자. 1. programming 관점에서 Synchronous (동기) Synchronous programming: 여러 작업(task)들을 순차적으로 실행하도록 한다. Asynchronous (비동기) Asynchronous programming: 여러 작업(task)들을 독립적으로 실행하도록 한다. 이는 시간을 단축시킬 수 있다. Asynchronous programming과 Multi-threading은 다르다. Asynchronous programming: 여러 작업을 동시에 실행하는 프로그래밍 방법론 Multi-threading: asynchronous programming의 한 종류 mul..