인터넷 형광팬 라이너 무료버전을 설치했다.

개선사항 공식문서 참고
[LINER] What's New

 

LINER | Search Less, Learn More

In the flood of information, LINER helps you find and learn reliable information faster. Discover the highlights of the web, filtered by millions of intelligent people around the world.

getliner.com



6가지 칼라를 제공



칼라수정, 코멘트작성, 삭제



 

 

 

나는 자괴감에서 한발 도약하려고 한다.
이건 내 중심적으로 나를 위해 쓰는 글이다.
이제 더이상 나를 숨기면서 가면을 쓰고 싶지 않다.

병역란을 채우는데 고민하게 되었다.

 

군필을 눌러서 이력서를 거짓으로 작성해도, 사기일 뿐더러 그렇게 한다고 못알아볼 사람들도 없다.

면제를 눌렀다.

세부 메뉴가 나왔고, 장애등급은 받지 않아 진행할수 없었다.

장애등급이 없는데 왜 면제를 받냐면서

면제판정을 했다고 비난하고 논란 거리가 된다면,

그또한 바꿔야할 시스템이다.

 

나는 양극성정동장애 판정으로 2개월간 입원을 하게 되었다.
그리고 면제 받았다.

 

 

나라를 지키고온 청년들과 사람들에게 감사하는 마음을 갖고 살아가겠습니다.
겸손하지 못했던 과거들을 반성하고, 겸손해야 하는 이유를 한번더 생각합니다. 
사회 생활을 시작하며 여러가지 고민들을 하다가 곁길로 생각이 새게 됩었네요.

 

굳이 공개글로 적는 이유는, 나의 가면을 조금 무식한 방법으로 벗어던지고 싶기 때문이다.

그리고 나중에 다시 보게될때, 아니 어쩌면 다음날 보게 되었을때. 내가 참 부끄러운 사람이라는걸 나 자신에게 각인시키고 싶기 때문이다.

글을 조금 변경하거나 편집하여 포장할수도 있다.

그 정도는 최소한의 나의 멘탈을 위한 방어라고 생각하자.

 

더욱 성장할 것이다.

그리고 진정한 의미의 인정받을수 있:는 고문관이 될것이다.

 

그전에 나를 낮추는 법을 찾아보자.

 

 

 

ref. 고문관 - https://ko.wikipedia.org/wiki/고문관

조언에 "조"가 도울조인지 궁금해서 검색해 봤다.

 

조언, 粗言

명사
  1. 거친 말.
 
조ː언1, 助言
명사
  1. 도움이 되게 말로 거들거나 깨우쳐 주는 일. 또는, 그 말. 도움말.
    "∼자"
 
조ː언2, 造言
명사
  1. 근거 없는 사실을 지어서 하는 말.
 
조ː언3, 繰言
명사
 
1. 말을 되풀이하는 것.
 
2.중얼거리는 것. 또는, 투덜거리는 것
 
 
나는 어디에 속하는가? 자신있게 助言에 속한다고 하지 못하는 나를 반성하게 된다.

 

자유양식

GOOD

- 직접 디자인

BAD

- 템플릿에 끼워맞추는식 의존하지 않기

- 단일 페이지( one page ) 인사담당자가 보기 좋게

 

인적사항

이메일은 본인의 이름 or 이니셜 포함

GOOD

- leo.park@gmail.com

BAD

- inma06@naver.com

 

Experience

업무중 발생한 경험 / 업무 효율화 및 개선사항

e.g.

네트워크 장애시 담당자에게 SOS Push를 보내 장애를 신속히 대응하였다.

A/B 테스트 환경 셋팅을 하여 UX개선에 대한 피드백을 지표화해서 제시

CI/CD - 배포시 아찔한 상황이 있던 경험 ... 휴먼에러를 방지하기 위한 테스트 코드를 작성하였다. 

 

경력 업무의 단순 나열을 절대 금지!!

활동 및 성과 / 결과 기입

성과는 수치와 함께 제시!!

객관성 + 신뢰성 확보 ( 벤치마크 첨부 )

 

 

 

 

 

ref. https://www.youtube.com/watch?v=_q5FSnTa8k8&ab_channel=%EC%BD%94%ED%95%98%EB%A3%A8%5BCoharu%5D

Promise / Future란?

  • Future는 미래에 실행이 완료될 것으로 예상되는 객체 를 의미한다.
    • 따라서 아직 실행되지 않은 경우나, 실행 중이지만 아직 완료되지 않은 경우를 포함하는 개념임.
    • Future 객체에 요청한 값이 들어오기를 기다리는 동안 다른 연산을 수행할 수 있다.
  • Promise

Promise / Future 가 왜 필요한가?

Promise / Future가 왜 필요한지를 이해하려면, callback의 단점을 이해하고 있어야 한다.

function callbackStyle(resolve, reject) {
    const result = 10;
    const isSuccessful = true
    isSuccessful ? resolve(result) : reject(-1);
};

callbackStyle(function (result) {
    console.log(result);
}, (e) => e);
function getData() {
    return new Promise(function (resolve, reject) {
        const result = 10;
        const isSuccessful = true
        isSuccessful ? resolve(result) : reject(-1);
    });
}

const pm = getData();
const pm2 = pm.then(function (result) {
    console.log(result);
    return result;
})
.catch((e) => e));
  • 별 차이가 없어 보일지 몰라도, Promise는 "값"으로 다룰 수 있다는 점에서 callback과 큰 차이가 있다.
    • Promise를 리턴하면서 다음 Promise로 값을 전달할 수 있다.
const pm = getData();
pm.then(function (result) {
    console.log(result);
    return result + 5;
})
.then(function (result) {
    console.log(result);
});

//// 결과 ////
10
15
  • callback의 단점은, callback hell에 빠질 수 있다는 것이다.
    • 원인은 callback 실행 결과를 외부로 리턴할 수 없어서 callback 결과를 다루려면 callback 안에서 해결해야 하고, 결국
      callback 안에 callback, ... 형식으로 계속 중첩해서 써내려가야 한다는 것.
    • 반면 Promise는 실행 결과 프로미스를 리턴해서 다음 then으로 전달 가능하기 때문에 callback hell 문제에서 벗어날 수 있다.

Callback Hell 예제

function add10(a, callback) {
  setTimeout(() => {
    callback(a + 10);
  }, 500);
}
add10(5, function(res) {
  add10(res, function(res) {
    add10(res, function(res) {
      add10(res, function(res) {
        // log(res);
      });
    });
  });
});

Promise를 사용하면?

function add5(a) {
  return new Promise(resolve =>
    setTimeout(() => resolve(a + 5), 500));
}

const p1 = add5(5)
  .then(add5)
  .then(add5)
  .then(add5);
  • 이처럼 Promise는 비동기를 리턴이 가능한, "값"으로 다루는데 의미가 있다.

async, await를 사용하면 Promise 가독성이 훨씬 좋아짐!

[JS] async - await / Promise

2

신고하기

시작에 앞서.

 

많은 bloc강의가 있지만

Flutter Korea 오픈채팅 커뮤니티에서 추천을 받은 [유튜버 헤비프랜님] 의 강의로 시작했다.

BLoC 패턴이란?

BLoC (business Logic Component)는 파올로 소아레스와 콩 후이라는 개발자에 의해 디자인되었고

2018년 DartConf에서 발표되었습니다.

BLoC는 Presentation Layer와 business Logic을 분리하여 코드를 작성할 수 있도록 해줍니다.

 

https://beomseok95.tistory.com/312

 

 

 

헤비프랜(HeavyFan) - Flutter

flutter_bloc 6.x.x

https://youtu.be/JqbV4OtKAtA

더보기

 

 

 

 

카운터앱

  • Cubit
  • Bloc

BlocProvider -> MultiBlocProvider 메인에 선언해서 배열안에 여러개 씀.

BlocObserver로 전역에서 큐빗과 블락을 트래킹한다. ( 디버깅유용함 )

 

## 자 그럼 언제 큐빗을 쓰고 언제 블락을 쓸까?

>>  이벤트 등록이 큐빗으로 먼저 진행하고 나중에 블락으로 리팩토링.. 하는걸 추천한다고함. 근... 나중에 리팩토링....?

리덕스(?)도 훌륭한 대한이 될수 있음.

공식문서에는 Why Bloc? 에 대해 이렇게 설명한다.

Why Bloc?

더보기

Bloc makes it easy to separate presentation from business logic, making your code fast, easy to test, and reusable.

When building production quality applications, managing state becomes critical.

As developers we want to:

  • know what state our application is in at any point in time.
  • easily test every case to make sure our app is responding appropriately.
  • record every single user interaction in our application so that we can make data-driven decisions.
  • work as efficiently as possible and reuse components both within our application and across other applications.
  • have many developers seamlessly working within a single code base following the same patterns and conventions.
  • develop fast and reactive apps.

Bloc was designed to meet all of these needs and many more.

There are many state management solutions and deciding which one to use can be a daunting task. There is no one perfect state management solution! What's important is that you pick the one that works best for your team and your project.

Bloc was designed with three core values in mind:

  • Simple: Easy to understand & can be used by developers with varying skill levels.
  • Powerful: Help make amazing, complex applications by composing them of smaller components.
  • Testable: Easily test every aspect of an application so that we can iterate with confidence.

Overall, Bloc attempts to make state changes predictable by regulating when a state change can occur and enforcing a single way to change state throughout an entire application.

 


 

느낌

코드량이 많았다. (강사도 이런 긴 코드량 때문에 진입장벽을 느끼는것 같다고 함)

사실 이것만 봐서 뭐가 장점인지 확실하게는 모르겠다.

Getx로 다 되는거 아니야? 라는 심정

뭔가 느낌적인 느낌으로는 Cubit, Bloc 이라는 오브젝트에 모든 상태를 넣고 필요할때 꺼내서 쓸수 있는 느낌??? 잘 모르겠다.

카운터 예제만으로는 명확하게 어떤점때문에 블락을 써야하는지 모르겠다

결론, 튜토리얼 예제말고 구조가 좀더 있는 앱으로 다뤄봐야 겠다.

그리고, 큐빗이 블락보다 좀더 간편하게 쓸수있는것 같고, 블락은 그에 반해 원칙에 충실한 우직한 녀석인것 같다

막판에 앱 전역에 BlocObserver를 달았더니 인터렉션이 상세히 로깅되는걸 볼수있었다.

 

 

아무래도 이런점이 서비스가 점점 복잡하고 커질수록 강점이 되는 한 부분같다. 

 

실습환경

dart 2.0.7 (널세이프티 이전버전)

bloc 6.0.1

flutter_bloc 6.0.1

 

배워야 하는 단어

abstract class [ 앱스트랙트 ] - 추상클래스***

async* - [어싱크 스타] - 함수를 리턴으로 종료시키지않고 계속해서 이벤트를 수신대기한다. ( 

yield [이-일드]

yield* [일드 스타]

리덕스?

 

 

ref. 헤비프랜(HeavyFan)

 

 

오늘부터 상태관리툴 bloc을 배워보려고 한다.

배우면서 기존 setState방식, getx 방식등의 상태과리와 비교해서 어떤점이 다르고 이득이 되는지,

또 대규모 프로젝트에서 선호한다는데, 왜 그런지?

도메인별로 로직을 분리하게 될 때 이점이 정말 명확한지 등의 질문을 해결해 나가는게 목표이다.

그리고 최종적으로는 bloc으로 앱을 출시해보고 프로덕션 레벨에서 실사용 가능한 수준으로 만드는게 목표이다.

 

DDD ?  도메인주도개발?  이 가져오는 장점

MVVM?  뷰모델의 독립 의존성 제거 등이 실제로 어떤 장점이 있는지 궁금했다.

물론 블록을 배우고 몇개의 프로젝트를 하고 나면 단점이 무엇인지도 느낄수 있을 것이다.

 

 

많은 bloc강의가 있지만

플러터 한국 오픈채팅 커뮤니티에서 추천을 받은 [유튜버 헤비프랜님] 의 강의로 시작했다.

BLoC 패턴이란?

BLoC (business Logic Component)는 파올로 소아레스와 콩 후이라는 개발자에 의해 디자인되었고

2018년 DartConf에서 발표되었습니다.

BLoC는 Presentation Layer와 business Logic을 분리하여 코드를 작성할 수 있도록 해줍니다.

 

flutter bloc 버전은 6.x.x 였다.

지금은 8.대의 버전이 나와있다. 이 강의가 끝나고 최신버전으로 다시 시작했을때 어떤점이 개선됐는지 알 수 있을것 같다.

 

블로깅 정리 방식은

집중할수 있는 챕터까지 집중해서 따라한 다시 돌려보며 핵심적이라고 생각되는 부분들을 최소한 알아볼수 있을 정도로만 노트하는 식으로 진행하면 좋겠다.

 

 

+ Recent posts