전체 글 201

[Style] no_leading_underscores_for_local_identifiers

다트 공식홈페이지에서 연습문제를 풀다가 no_leading_underscores_for_local_identifiers 를 알게되었다. (에디터에서 바로바로 경고창이 떠서 놀랐다!) https://dart-lang.github.io/linter/lints/no_leading_underscores_for_local_identifiers.html no_leading_underscores_for_local_identifiers no_leading_underscores_for_local_identifiers Group: style Maturity: stable View all Lint Rules Using the Linter DON’T use a leading underscore for identifiers t..

Language/Dart 2022.08.19

[Exercism] Armstrong Numbers #num #math

https://exercism.org/tracks/dart/exercises/armstrong-numbers Armstrong Numbers in Dart on Exercism Can you solve Armstrong Numbers in Dart? Improve your Dart skills with support from our world-class team of mentors. exercism.org 처음에 문제 조건을 잘못 이해해서 조금 해맸다. 먼저 제곱을 계산하기 위해 'dart:math' library를 사용하였다. 그리고 다트에서는 int.parse(String word)를 통해 String 숫자를 int로 변환할 수 있다.(double.parse도 있다!) math의 pow를 사용해서 각..

Language/Dart 2022.08.19

[Exercism] Scrabble Score #가독성 있는 코드란?2

https://exercism.org/tracks/dart/exercises/scrabble-score Scrabble Score in Dart on Exercism Can you solve Scrabble Score in Dart? Improve your Dart skills with support from our world-class team of mentors. exercism.org 이전 Leap랑 같이 가독성 있고, 수정하기 좋은 코드에 대해 얘기를 나눌 수 있었던 문제! 처음에 내가 문제를 풀었던 방식은 1) 단어별 점수 조건을 Map으로 만들고 + 2) 주어진 단어를 List로 변환해서 이중 for문을 사용해서 점수를 구했다. 여기서 또 알게된 재밌는 사실은, 다트는 .dart 파일마다 반드..

Language/Dart 2022.08.18

[Exercism] Leap #가독성 있는 코드란?

https://exercism.org/tracks/dart/exercises/leap Leap in Dart on Exercism Can you solve Leap in Dart? Improve your Dart skills with support from our world-class team of mentors. exercism.org 처음에 문제가 이해되지 않아서(영어 해석이 안됬다...) 한참 헤매다가 테스트코드에 있는 조건들을 보고 문제를 풀었다. 그래서 내가 처음 냈던 답안은 아래와 같다. class Leap { bool leapYear(int year) { return year % 4 == 0 && (year % 100 != 0 || year % 400 == 0); } } 문제를 풀면서 팀원과..

Language/Dart 2022.08.18

[Exercism] Two Fer #Optional positional parameters

https://exercism.org/tracks/dart/exercises/two-fer Two Fer in Dart on Exercism Can you solve Two Fer in Dart? Improve your Dart skills with support from our world-class team of mentors. exercism.org 다트는 optional positional parameters를 사용할 수 있다. 이렇게 default 값을 넣어 줄 수도 있고 String twoFer([String name = 'you']) { return 'One for ${name}, one for me.'; } 아니면 널을 허용한 상태(String?)에서 null일 경우를 분기 처리해주는 방법도..

Language/Dart 2022.08.18

Dart 공부하기

새로운 언어를 공부하게 되었다! 공식문서 https://dart.dev/ 비교적 최근에 나온 언어들이 그렇듯이 공식문서가 굉장히 잘되어있다. Dart programming language Dart is a client-optimized language for fast apps on any platform dart.dev 자바를 하다가 다트를 시작한 느낌은, 1. 객체지향 + 정적 + 컴파일러라서 접근하기 쉽다. 2. Null Safe!!!!! 3. 좀 더 간결하다(생성자의 new 등 자바에서는 반드시 써야했던 것이 많이 생략되어 있다.) DartPad DartPad를 통해 웹에서도 연습할 수 있다. https://dartpad.dev/? DartPad dartpad.dev Flutter를 위한 언어인만큼..

Language/Dart 2022.08.18

20220803 #Factory

휴가가 끝나고 돌아오니, 새로운 리펙토링이 있었다. 휴가를 가기 전에 전략패턴을 사용하면서 type에 맞는 구현체를 찾아올 때 어떤 방법이 좋을지 고민이 있었다. 컨트롤러에서 해당 구현체를 List로 주입하고 type을 비교하는 메서드를 하나 만들어서 해당 구현체를 넣어주었는데, 구현체를 찾기 위한 목적의 메서드를 하나 만든다는 것에서 좋은 방법은 아닌 것 같았다. 팩토리를 사용하자는 의견이 있었는데, 며칠 자리를 비운 사이에 리팩토링이 되어 있었다. 컨트롤러에서는 Factory에 있는 메서드를 사용하고, Factory에서는 switch문을 사용해서 type에 따라 알맞은 구현체의 해당 메서드가 실행되도록 하였다. Factory가 너무 지저분해지지 않을까, 하는 걱정도 있었는데 구현해놓고 보니 오히려 가..

회고 2022.08.07

[2022년 7월] 회고!!

이번달은 일단 생각이 많았던 것 같다. 회사와, 업무와, 좋은 코드에 대한 고민이 많았다. 아마 이직을 하게 될 것 같고, 8월에는 새로운 곳에서 시작하게 될 것 같다. 디자인패턴 : 헤드퍼스트 디자인 디자인 패턴을 읽고 있다. 전략패턴을 일부 업무에 적용해봤는데, 팀 맴버 중에 타입별로 해당하는 구현체를 컨트롤러에서 그냥 바로 주입해주는게 낫지 않냐는 의견이 있었다. 나는 해당 인터페이스를 사용하는 것만 알면되지 어떤 구현체가 들어오는지를 컨트롤러에서 알 필요가 있냐는 입장? 또 다른 추가 의견으로 구현체를 불러오는 부분을 팩터리를 하나 만들어서 다 모아 놓는 방법도 추천받았다. 자료구조 : 알고리즘 문제를 가끔 풀고 있고, 쏘카 코테를 보면서 큐를 이용해 BFS를 처음 풀어봤는데 재미있었다! 자료구..

회고 2022.07.30

20220722 TIL #리패키징 #전략패턴

계속 미루고 미루던 리패키징을 했다. 처음에 패키징 구조를 제대로 정하지 않고 시작하다 보니 패키지가 같은 뎁스에 계속 추가만 되고 있었다. 또 중간중간에 기획이 계속 바뀌다 보니 동일한 뎁스에 있어도 될 것 같은 패키지가 흩어져 있는 것도 있었다. 계층구조로 구분할 건 구분하고, 필요한 건 가까워질 수 있도록 수정하였다. 네이밍과 api 계층도 일부 수정했다. 당장 기능 구현해야되는 것도 있어서 다 수정하지는 못했지만, 크게 패키지 구조는 정리가 되서 틈틈히 더 수정하면 될 것 같다. 이와중에 main만 패키지 구조가 변경되고 test는 변경이 안되서...... 도와주는 플러그인이 있다고 하는데 왜 변경이 안됬을까?? 당연히 test도 변경이 됬다고 생각하고 확인을 안했는데 나중에 다시 살펴보니 하나도..

회고 2022.07.22

[프로그래머스] 예산

https://school.programmers.co.kr/learn/courses/30/lessons/12982?language=java 이 문제의 포인트는 두 가지이다. 1. 예산을 가장 많이 지급하려면, 신청한 금액이 적은 부서들에게 지급하면 된다. → 정렬 2. 지급한 금액이 budget 보다 크면 더 이상 지급할 수 없다. → break import java.util.Arrays; class Solution { public int solution(int[] d, int budget) { int answer = 0; int sum = 0; //1. 정렬 Arrays.sort(d); for (int i = 0; i < d.length; i++) { sum += d[i]; //2-1. 지급한 금액이 ..

Language/JAVA 2022.07.15