반응형

전체 글 477

[Spring] Apache POI 엑셀 다운 vs opencsv CSV 다운 로직 및 성능 비교하기 (feat. parallelStream)

대량 데이터를 엑셀로 다운로드하는 API가 있다. 몇백 건 정도일 경우 엑셀 다운로드 하는 데에 오랜 시간이 걸리지 않지만, 수십만~수백만 건의 데이터를 엑셀로 다운로드하는 경우 수십초를 기다려야 했었다. 또한 Java heap 메모리도 굉장히 많이 차지했다. 보통의 경우 JVM의 GC가 알아서 잘 동작하기 때문에 Heap 메모리를 걱정할 이유가 없지만, 해당 api를 사용하면 heap usage가 한계치까지 도달하는 모습을 확인할 수 있었다. G1 Eden, Survivor 영역에서 나아가 G1 Old Gen이 1GB를 넘기는 현상까지 발생했다. 따라서 엑셀에서 csv로 변경하였는데 이번에는 이러한 일대기를 작성해보려 한다. Apache POI 라이브러리 엑셀 다운로드가 어떠한 로직으로 작성돼있었는지부..

[230826] 유스콘 2023 컨퍼런스 후기

2020년부터 시작된 유스콘(YOUTHCON) 행사. 올해도 어김없이 제이슨이 주관한 2023년 유스콘 행사가 시작됐다! 2021년에는 아무것도 모르는 상태로, 2022년에는 우아한테크코스 학생 신분으로 들었었는데, 올해는 신입 개발자 신분으로 듣는 거라 또 다른 느낌으로 다가올 듯하여 기대에 부푼 마음으로 참가해보았다. 유스콘 2023 행사 일정표는 아래와 같다. https://frost-witch-afb.notion.site/YOUTHCON-23-a026c94d997e46db9396283ed869a922 YOUTHCON'23 유쾌한 스프링방에서 탄생한 유스콘은 👨‍🎓 젊은 개발자와 👨‍🏫 선배 개발자가 함께 가치 있는 기술에 관한 정보와 경험을 공유하는 콘퍼런스입니다. 여기서 발표하는 사람들을 잘 기..

[OOP] 전략 패턴 안에 전략 패턴을 넣어 의존성을 더욱 줄여보았다

우리는 객체지향을 배우면서 추상화의 장점을 배운다. Java, Spring에서는 이 장점들을 적극적으로 활용할 수 있도록 굉장히 많은 지원을 해준다. 참고: https://kth990303.tistory.com/359 [JAVA] IoC, DI, DIP 친구와 얘기하던 중, Spring IoC, DIP 개념에 대한 얘기가 나왔다. 이 개념들은 구글링하면 워낙 잘 정리된 글들이 많아 별도로 작성하지 말까 고민도 했다. 하지만 해당 개념들은 객체지향에서 매우 kth990303.tistory.com 인터페이스, 추상클래스, DI 등의 장점에는 의존성이 적어진다는 점이 존재한다. 이러한 점 덕분에 구현을 하다가 if문이 굉장히 많이 나오거나, 추상화할 수 있게 리팩터링할만한 부분이 나온다면 우리는 추상화를 이용..

[Nexters] 넥스터즈 22기, 23기 최종 수료 후기

2023년 8월 19일 토요일, 넥스터즈 23기를 이수하였다. 그와 동시에 나는 22기와 23기를 모두 이수하여 최종적으로 넥스터즈 수료증을 획득하였다! 22기와 23기는 나에게 있어 사뭇 다른 느낌이었다. 22기는 대학생 신분으로서, 그리고 넥스터즈 신입으로서 아예 낯선 환경에서 으쌰으쌰했다면, 23기는 직장인 신분으로서, 그리고 넥스터즈 두번째 활동으로 어느정도 나름 (넥스터즈 한정) 중니어 신분으로 활동했기 때문이다. 그리고 실제로 22기와 23기는 다른 점들이 꽤나 존재했다. 크게 다른 점 몇 가지를 적어보자면 아래와 같다. 22기는 장소 매번 변경됨 / 23기는 장소 고정 (SBA 아카데미) 22기는 넥나잇이 오후 1~9시까지만 진행 / 23기는 넥나잇이 오후 6시 ~ 다음날 오전 9시까지 진행..

[230812] 우아한형제들 주니어 개발자 1개월차 후기

나는 2023.07.11 (화) 에 신입개발자로서의 첫 걸음을 내디뎠다. 큰 규모의 프로젝트를 진행해본 적이 한번도 없었기 때문에 매우 두근거리는 마음으로 입사했다. 정직원 경험뿐 아니라, 인턴 경험도 한번도 없었기 때문에 더욱 떨리고 기대에 부푼 마음이었다. 2023년 8월 12일, 입사한지 정확히 한 달이 됐다. 사실 1개월 이상 직장경험이 있는 사람들은 알겠지만, 1개월차에는 할 수 있는게 사실상 거의 없다. 나 또한 1개월동안 한 거는 별로 없다. 그렇지만, 1개월동안 위에서 언급한대로 즐겁고 부푼 마음으로 무언가에 임한 경험은 분명히 존재한다. 그렇기 때문에 주니어 개발자 1개월차로서, 일기처럼 느낀점이랑 한 일에 대해 적어보려 한다. 또한, 주니어 1개월동안의 경험은 회사마다 다 다를 것이라 ..

[DB] index_merge 비활성화를 통한 Using Intersect 쿼리 효율 개선 일지

MySQL을 사용하고 있는 사이드프로젝트 모카콩에서 아래 Slow Query를 발견했다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 select comment0_.comment_id as comment_1_2_, comment0_.created_time as created_2_2_, comment0_.modified_time as modified3_2_, comment0_.cafe_id as cafe_id6_2_, comment0_.content as content4_2_, comment0_.is_masked as is_maske5_2_, comment0_.member_id as member_i7_2_ from comment comment0_ left outer..

CS/Database 2023.07.28

[JUnit5] Archunit 라이브러리를 이용한 아키텍처 테스트

간혹 통합테스트를 작성하다보면 아래와 같은 생각이 들곤 한다. "비즈니스 로직이 의도한대로 작동되는지 테스트는 할 수 있겠어. 하지만 로직 외에 아키텍처 의존성을 테스트할 수는 없을까?" Archunit 라이브러리를 이용하면 아키텍처 의존성, 클래스명 등을 테스트할 수 있다! 참고로 Archunit Guide는 아래 링크에서 확인할 수 있다. https://www.archunit.org/userguide/html/000_Index.html#_introduction ArchUnit User Guide ArchUnit is a free, simple and extensible library for checking the architecture of your Java code. That is, ArchUnit..

[230715] 넥스터즈 23기 2~3주차 세션 후기

벌써 넥스터즈 23기도 3/8 정도가 지나갔다. 세월이 진짜 빠른 듯하다. (내가 귀찮으므로 ㅋㅋ) 거두절미하고 바로 본론으로 가보도록 하겠다! 2~3주차 세션 2주차에는 기획발표, 3주차에는 레크레이션 및 UT 진행이 안내됐다. UT는 애플리케이션 기획안에 대해 PPT 또는 피그마로 소개해주는 시간을 의미한다. 22기 때와 세션 커리큘럼이 거의 비슷했어서 낯설지는 않았던 듯하다. 확실히 22기 때의 경험 덕분에 부담감이 훨씬 적은 느낌? 그래서 그런지 발표도 완전 막장(?) 으로 진행됐다! 2주차 때에는 PM이 탈주를 하는 바람에, 내가 발표를 하게 됐다. (진짜 탈주는 아니고, PM 형이 그날 기업 코딩테스트가 있었다) (그리고 애초에 우리팀은 탈주 허용으로 유명한 팀이다 ㅎㅎ 나도 4주차는 탈주 예..

[230703] 넥스터즈 23기 첫 주차 세션 후기

넥스터즈는 두 기수 이상 이수해야 수료 처리가 된다. 나는 22기 때 활동을 진행했으므로, 23기까지 활동을 해야 최종적으로 수료가 되기 때문에 이번 23기에도 활동을 진행했다. 22기 합격 후기 및 활동 후기는 아래에서 확인할 수 있다. https://kth990303.tistory.com/401 [221204] 넥스터즈 22기 면접 후기 및 질문리스트 IT 유명 연합동아리 중 하나로 알려진 `넥스터즈`에 지원했다! 넥스터즈는 개발자, 디자이너와 연합해서 두달 간 몰입하여 프로젝트를 진행하는 연합동아리이다. https://teamnexters.com/ NEXTERS : IT Comm kth990303.tistory.com https://kth990303.tistory.com/429 [Nexters] 넥..

[2023-1학기] 회고 겸 적는 컴공 7전공 후기

2023년 1학기에 나는 교양을 하나도 듣지 않고 전공만 무려 7개를 수강하는 어리석은 충격적인 선택을 했었다. 그리고 2023년 6월 29일 목요일, 나의 2023년 1학기 성적이 모두 공개됐다. 미리 스포하자면, 성적이 좋지는 않다! 모든 학기를 통틀어서 가장 최저 학점을 받았다. 그럼에도 불구하고 블로그에 포스팅하는 이유는 다음과 같다. 추억 및 재미 블로그 `Konkuk 수업 리뷰` 카테고리에 글 채우려고 이유는 사실 별로 없고 위 두개가 전부다. 이제 회사를 들어가게 됐고, 앞으로 언제 졸업할지도 모르기 때문이다. 이 때 이랬었지~ 하는 심정으로 이 글을 다시 보면 재밌을 거 같기 때문에 작성한다. 강의 후기뿐만 아니라, 시험에 대한 내용까지 존재한다. 문제가 되면 시험내용은 삭제할 수도 있으며..

반응형