블로그

프로그래밍
2021.04.08.

forEach 함수는 async 함수를 기다려주지 않는다

최근 Mongoose를 사용하는 프로젝트를 진행하면서 forEach 함수는 비동기(async) 함수를 기다려주지 않는다는 걸 알게 되었다. forEach 함수의 콜백이 비동기 함수일 때 경험한 문제 문제가 생긴 코드는 아래와 같다. 이 코드는 wantedGenres 배열의 각각의 값에 대해 MongoDB에서 일치하는 오브젝트를 찾아 genres 배열에 넣고자 하는 코드이다. 예상하기에는, forEach의 콜백 함수에서 genres에 모두 삽입이 완료된 후 결과가 출력될 것으로 보였다. 그러나 실제 실행 결과에서는, 최종 결과가 먼저 출력된 후 삽입이 일어났다.

  • JS
  • 비동기
프로그래밍/C#
2020.02.09.

public 필드 vs 자동 구현 프로퍼티 비교 분석

이 글은 C#에서 public 필드(Field)와 자동 구현 프로퍼티(Auto-Implemented Property) 중 무엇을 사용해야 하는가 고민에서 시작하여, 필드와 자동 구현 프로퍼티의 차이점, 성능에 관해 실험해본 내용을 다룬다.

  • C#
  • 프로퍼티
프로그래밍/C#
2019.05.18.

List 대입(복사)하기

List<T>의 경우 참조 형식이다. 그래서 단순히 list1 = list2;와 같은 형식으로 대입한다면, list2의 주소 값만 list1에 대입되어 list1의 값이 변경되었을 때 list2의 값도 변경된다.

  • C#
프로그래밍/C#
2019.05.15.

Array.Sort() 정렬 조건 바꾸기

Array.Sort()를 사용하면 오름차순으로 배열을 정렬할 수 있다. 그런데 프로그래밍하다 보면, 단순히 오름차순으로 정렬하는 것뿐만 아니라, 기준 항목이 같을 경우 두 번째 항목을 비교하는 등 복잡한 조건으로 정렬해야 할 때도 있다. 이 글에서는 이처럼 복잡한 조건으로 Array.Sort()를 사용해 정렬하는 방법을 다룬다.

  • Array.Sort()
  • C#
프로그래밍/C#
2019.05.10.

Array.Sort(), Linq로 2차원 배열 정렬하기

Array.Sort 함수(메서드)를 사용해서 2차원 배열 정렬하는 방법을 찾아 헤맸으나 단순 2차원 배열에서 한 열을 기준으로 정렬하는 것은 어려운 것 같다. 그래서 이런저런 방법을 찾아보고 시도하게 되었다. 그리고 잊어버릴까해서 대안으로 사용할 수 있는 방법을 정리하였다. 더 나은 방법을 알고 있다면, 꼭 알려주기 바란다.

  • Array.Sort()
  • C#