Til Home

2020-06-09-TIL

Fact

  • 오늘은 네이버 인턴용 자기소개서를 썼다. 이번 자기소개서를 쓰기 위해서 공부를 하게 되었다. 자신만의 철학이 무엇인지 와 글로벌 서비스를 개발한다면 어떤 점이 중요한지. 글로벌 서비스를 개발할 때 중요한 것은 언어, 시차, 국가의 상황에 따라 다르다. 언어 같은 경우에는 언어마다 글자 길이와 높낮이가 다를 수가 있다. 길이와 높낮이가 달라지면 버튼에서 이탈이 되고 UI가 괴이하게 변할 수도 있다. 예를 들어서 버튼에 과학이라는 글자를 넣었는데 독일에 배포할 때 번역해서 넣었다고 치자. 그러면 그 버튼 안에 Wissenschaft 가 들어갈 텐데 버튼의 CSS를 어떻게 적용하는지에 따라 버튼의 크기가 늘어날 수도 있고, 글자 크기가 작아질 수도 있고, 글자가 잘릴 수도 있다. 결국에는 UI 가 망가졌다고 볼 수도 있다. 이것을 하기 위해서 나라별로 언어에 따라 UI 도 바꿔야 할 수도 있다. 시차 같은 경우에는 예를 들어서 00:00 시에 무엇인가 바뀌게 할 때 이게 나라마다 시차가 달라서 그것을 유이하고 개발을 해야 한다. 국가의 상황에 따라 다르다는 점은 국가마다 트래픽 속도, 인터넷 속도, 문화 등이 있다.
  • 자소서를 쓴 후에 문제를 풀었다. 이번에는 이분 탐색 문제인 입국 심사를 풀었다. 혼자 힘으로 못 풀어서 나중에 풀이법을 보고 다시 풀었다.
  • 알고리즘 문제를 푼 후에 NextStep 문익점 1주 차 4단계에 따라 어제 만들었던 레이싱 카 앱을 추가 및 고쳤다. 레이싱 게임에서 승자를 뽑기 위해서 포지션의 최대치를 계산하고 위너가 누군지 계산해 주는 RacingCalculator을 만들고 carList로 입력값을 차들을 배열로 뽑아주고 인덱스에 따른 차들의 이름을 가져오는 메서드를 만들었다. 그리고 View와 RacingGame인 App를 문제에 있는 요구대로 짰다.

Feelings

  • 역시 스펙이 적으면 말이 많아지고 스펙이 많으면 대충 올려도 된다는 것을 느꼈다. 스펙을 쌓자…는 희망사항…
  • 문제 풀이 너무 어렵다. 이진 탐색을 쓰라고 하는데 최소 최대를 고르는 케이스를 어떻게 골라야 할지 모르겠다.
  • java filter 개빡친다.

Findings

  • java index에 따라 뽑을려면
IntStream.range(0, carListNames.length)
                .filter(i -> IntStream.of(winnersIndex).anyMatch(x-> x== i))
                .mapToObj(i -> carListNames[i])
                .toArray(String[]::new);

IntStream.range(0, carPositions.length)
                .filter(i -> furthestPosition == carPositions[i])
                .mapToObj(i->i)
                .mapToInt(x -> x)
                .toArray();

등 비슷하게 쓰면 된다.

Future Action

  • 문제를 잘 읽고 고민 하다가 정말 아니다 싶으면 시간 아끼기 위해서 풀이를 보고 풀도록 하자.