본문 바로가기
728x90

분류 전체보기127

List 두개의 중복값 찾기, 그리고 ConcurrentModificationException 최근 TDD 스터디를 시작했습니다. 구현 과제는 로또 프로그램입니다. 해당 과제를 위해 로또 번호를 생성하고 당첨 번호를 입력하여 매칭되는 숫자의 개수를 찾아야하는 로직이 존재했는데요. 기능 구현 중 새로운 Exception을 만나 기록해봅니다. 바로 ConcurrentModificationException 입니다. 구현과 예외 발생 기능 구현을 위하여 리스트 두개의 값을 비교, 중복되는 항목의 개수를 구해야 합니다. for 문을 사용할 수도 있지만 이번 과제에는 indent 가 1을 초과해서는 안된다는 조건이 존재합니다. for 문 내에서 if 문 사용 시 indent == 2 로 조건을 어기게 되는 것이죠. 해서 제가 사용한 방법은 ArrayList.retainAll() 메소드 입니다. retainA.. 2022. 12. 15.
[Spark] Spark Job 이번 포스팅에선 스파크의 작업에 대하여 알아보겠습니다. 먼저 스파크 작업은 어떻게 이루어져 있는지를 알아보고 , 어떤 방식으로 실행될 수 있는지를 알아볼게요! Job의 구조 spark에서 수행되는 작업은 job, stage, task 로 구성됩니다. job : spark app에 제출된 작업을 의미합니다. stage : 단위에 따라 구분하는 작업으로 job을 여러 개의 stage로 쪼갤 수 있습니다. task : 익스큐터에서 실행되는 실제 작업의 단위로 가장 작은 단위의 객체입니다. Spark Application의 구조 spark application 은 driver, executor process로 실행되는 프로그램입니다. application 에는 작업을 관리하는 dirver와 작업이 실행하는 노드.. 2022. 12. 15.
[Spark] Spark Evalution Spark 에는 크게 두 가지 종류의 연산이 존재합니다. Transformation 과 Action 인데요, 두 가지로 나눠진 이유와 그 역할은 무엇인지 알아보겠습니다. 연산 분류 이유 두 가지 종류의 연산이 존재하는 이유를 이해하기 위해선 먼저 Spark 의 특징인 Lazy Evalution 의 개념을 알고 가야 합니다. Lazy Evalution 을 한국어로 번역하자면 게으른 연산이라고 해석할 수 있는데요. 게으른 연산 기법으로 인하여 Spark 는 연산 실행 계획 최적화가 가능합니다. 사용자가 입력한 연산들을 즉시 수행하지 않고 메타데이터에 연산이 요청되었다는 사실만 기록하고 연산의 가장 최적의 수행 방법을 수립해둡니다. action 함수가 호출되기 전까지는 실제 데이터 로딩 혹은 연산이 이루어지지.. 2022. 12. 13.
[판교맛집] 우동 - 소바니 우동 안녕하세요~ 닐씨가 추워지니 따듯한 국물이 부쩍 생각이 나는 하루네요! 오늘은 유스페이스1에 위치한 우동집을 소개하려고 하는데요~ 이름은 소바니 우동입니다! 파트원들과 점심을 먹을 때면 종종 방문하곤 합니다! 다양한 우동과 덮밥 메뉴를 판매하고 있고 메뉴 자체가 호불호가 심하지 않은 메뉴들이라 본사에 있는 친구들 ( 입사동기들 ) 이 방문하면 함께 먹으러 가기도 해요. 맛은 판교 식당들 중에서는 상위권인 것 같아요. 그래서인지 조금만 늦게 가도 웨이팅이 있을 수 있습니다...^.ㅠ 저희 회사는 점심시간이 오전 11:30 부터라 다행히 웨이팅 없이 먹을 수있어요. 저는 카레를 무척 좋아해서 카레 우동을 자주 먹습니다. 이날은 위에서 말씀드린 본사 친구가 놀러 온 날이네요! 주기적으로 생각나는 맛이라 다른 .. 2022. 12. 12.
728x90