길다면 길고 짧다면 짧은 지난 3개월 간의 현장실습이 드디어 끝이나게 되었다. 아쉽게도 회사에서 T.O가 없다고 취업연계는 하지 못했다. 하지만 지난 3개월간 나는 의미있는 시간을 보냈다고 생각한다. 회사에서 협업이 어떤 방식으로 이루어지는지 알게되었고, 그동안 플러터를 많이 써보면서 간단한 앱 정도는 하나 구현할 수 있을 정도로 실력이 늘게되었다. 무스마는 정말 좋은 회사라고 생각한다. 서로 존중하는 문화와 개인의 성장을 독려하는 문화 속에서 긍정적인 영향을 많이 받았던 것 같다. 이 경험을 바탕으로 앞으로 실력을 좀 더 쌓아서 기회가 된다면 다시 이 회사에 면접을 보러 갈 생각이다.
Provider Provieder를 쓰는 이유 1. 코드역할 분리 UI를 담당하는 코드, 네트워크를 담당하는 코드, 데이터를 담당하는 코드 등코드를 역할에 따라 나눌 수 있다. 한 클래스가 여러 역할을 할수록, 클래스가 커지고 관리가 어렵게 됩니다.따라서 클래스가 하나의 역할만 갖도록, 클래스를 나눈다. 2. 데이터 공유 하나의 데이터를 여러 페이지에서 공유해야 될 때가 있다. 그런데 페이지마다 데이터를 새로 불러온다면 앱이 복잡해지고, 비용도 많이 들 것이다. 이럴 때 Provider 패턴을 쓰면 데이터 공유를 쉽게 할 수 있다. 3. 간결한 코드 Provider 패턴을 쓰면 Bloc패턴에 비해좀 더 적은 코드로 클래스들을 구분해서 쓸 수 있다. 패키지 추가provider: ^6.0.5 예제(Todo..
null safety Flutter 2.12 버전부터는 null 관련 버그를 줄이고 코드 안정성을 향상시키기 위해 "null safety" 개념이 도입되었다. - Non-nullable 타입: int, double, String과 같이 null 값을 가질 수 없는 타입은 "non-nullable" 타입으로 분류된다. 변수에는 반드시 초기값이나 값이 할당되어야 합니다. - Nullable 타입: nullable 타입은 변수가 null 값을 가질 수 있는 상태를 의미한다. - Null Safety 연산자: Null safety에서는 변수가 null일 가능성이 있는 경우, ? 연산자를 사용한다. nullsafety는 null로 인해 의도치 않은 동작을 방지하는 것이 목적이다. nullable Dart는 변수의..
비동기 처리란? 일반적인 프로그래밍은 단일 스레드 환경에서 순차적(동기적)으로 수행이 이루어진다.애플리케이션에서 파일 읽기, 데이터베이스 접근, 웹 페이지 가져오기 등의상대적으로 긴 시간이 필요한 작업들을 처리할 때 비동기 처리를 쓰게 된다. (애플리케이션의 렌더링 시간을 줄이기 위해 하는 처리라고 볼 수 있다.) Future란? Future는 비동기 작업의 결과를 나타내는 객체로, 비동기 작업이 완료되면 해당 결과가 Future 객체에 저장된다. Future는 "Future" 이런식으로 타입을 명시해야 한다. Future는 2가지 상태를 가지며, (미완료/완료)2가지의 결괏값을 얻을 수 있다. (data/error) 예제 코드 then, catchError로 반환값이 data일 때와, err..
알아볼 것들 1. DOM과 VDOM 2. Flutter LifeCycle DOM이란? DOM은 Document Object Model의 약자로 문서 객체 모델을 의미한다. 웹 페이지(HTML, XML)의 콘텐츠 및 구조, 그리고 스타일 요소를 구조화 시켜 표현하여 프로그래밍 언어가 해당 문서에 접근하여 읽고 조작할 수 있도록 API를 제공하는 일종의 인터페이스이다. DOM의 비효율성 웹페이지에서 동적으로 할 일(list)을 추가하는 기능을 구현하려면 JS를 사용해 DOM을 조작해야 한다. 항목 1 항목 2 항목 3 항목 추가 위 코드에선 "항목 추가" 버튼을 클릭할 때마다 새로운 요소를 생성하고, 그 요소를 목록에 추가한다. 위 코드가 비효율적인 점 2가지 1. 요소를 실제 DOM에 반복적으로 생성하고 ..
2번째 미팅에서 담당자님이 숙제를 하나 주셨다. 브라우저에서 화면을 렌더링 하는 순서를 조사해오세요. 바로 알아보도록 하자. 사전지식 1. 브라우저란? 브라우저(Browser)는 인터넷을 통해 웹 페이지와 웹 애플리케이션을 출력하고 사용자가 웹을 탐색하는데에 도움을 주는 소프트웨어이다. ex) chrome, firefox 등... 2. 렌더링이란? 브라우저는 웹 페이지를 요청하고 서버로부터 받은 HTML, CSS, JS 등의 웹 문서와 자원들을 해석해 사용자들에게 시각적으로 보여주는 것을 뜻한다. 3. 파싱이란? 특정 형식의 데이터나 문서를 분석하여 그 구조를 이해하고 원하는 정보를 추출하는 과정을 의미한다. 렌더링 순서 1. HTML 문서 파싱 웹 브라우저가 웹 페이지의 구조와 내용을 설명하는 HTML..
오리 시뮬레이션 게임 SimUduck이라는 오리 시뮬레이션 게임에는 매우 다양한 오리가 등장한다.이 시스템을 처음 디자인한 사람은 Duck이라는 슈퍼클래스를 만든 다음,그 클래스를 확장해서 서로 다른 종류의 오리를 만들었다. 시뮬레이션 게임 차별화 다른 오리시뮬레이션 게임 회사와의 차별점을 두기 위해객체지향 프로그래머 조는 오리가 날 수 있게 하기로 했다. 문제 발생 조는 duck의 몇몇 서브클래스만 날아야 한다는 사실을 까먹었다.Duck이라는 슈퍼클래스에 fly() 메서드를 추가해일부 서브클래스에 적합하지 않은 행동이 추가되어버렸다. 이는 유지보수면에서 좋지않은 설계이다. 상속 고려 조는 추가할 서브클래스에 fly()메소드를 오버라이드함으로써 문제를 해결하기로 했다. 조는 새로운 클래스인 ..
인프라 엔지니어의 업무 인프라 설계 인프라를 만들 땐 인프라를 만든 목적을 이해하고목적을 달성하는데 필요한 기능이나 성능 등을 조건으로 기준을 정리한다. 조건이 정리되면 조건에 맞는 기획서와 설계서를 작성해 책임자에게 결재를 올린다. 인프라 구축 필요한 기능이나 소프트웨어 등을 발주해 남품을 받으면 인프라 구축을 시작한다. 인프라 구축 작업은 인프라 엔지니어가 직접하라 때도 있고 오퍼레이터나 외부 업체에 맡길 때도 있다. 대기업을 고객으로 둔 SI(System Integration) 업계에선 하드웨어 설치작업은 CE(Customer Engineer)가,서버나 스토리지 설정은 SE(System Engineer)가,긜고 네트워크 장비 설정은 NE(Network Engineer)가 하는 경우가 많다. 웹 기..