전체 글(247)
-
NCP 사용후기 (feat. YAPP 23기)
Intro IT 동아리 YAPP의 23기로 참여하여 머니몽이라는 안드로이드 앱을 런칭했습니다. 예전 프로젝트에서 NCP를 사용했었는데, 그때의 경험이 너무 좋았어서 이번 프로젝트에서도 NCP를 사용했습니다. 또, Green Developers 프로그램을 통해 20만원 상당의 크레딧도 지급받을 수 있어서 다른 플랫폼을 고민할 이유가 없었던 것 같습니다. 아무튼 이번 포스팅에서는 머니몽 서비스 소개와 NCP 사용 후기를 간략하게 적습니다. 머니몽 머니몽은 동아리, 학회 등의 회계 관리를 도와주는 서비스입니다. 동아리원들은 자신이 낸 회비가 어떻게 사용되는지 투명하게 알고 싶어 합니다. 총무는 회비의 사용 내역을 관리하며 실물 영수증을 보관하는 등 증빙 자료를 구성하는 데에 어려움을 겪고 있습니다. 이러한 문..
2024.02.29 -
Spring Batch Job Parameter 사용하기
Intro 이번 포스팅에서는 Spring Batch가 지원하는 Job Parameter에 대해 다룹니다. 간단한 사용법과 Spring Batch가 Job Paramter를 재사용하는 문제에 대해서도 다룹니다. 잘못된 부분은 언제든지 말씀해주세요 ~ 1. Job Parameter란 말 그대로, Batch Job을 실행할 때 외부/내부에서 주입받아 Batch 컴포넌트 내에서 사용할 수 있는 파라미터입니다. 코드의 배포 없이 Chunk Size를 변경하고 싶다거나, 엊그제 고장나서 실행이 안된 Batch를 다시 돌리고 싶을 때 사용할 수 있습니다. 첫번째의 경우 Chunk Size를 파라미터로 주입받고, 두번째의 경우 실행 기준 날짜를 파라미터로 주입받으면 되는 것이죠~ 2-1. Job Parameter 사용..
2023.12.04 -
Row가 3억 개인 테이블에 column 추가/삭제하기(Online DDL)
Intro 최근에 RDB 테이블 중 하나에 column을 추가/삭제해야 하는 작업이 있었습니다. 다만, 이 테이블이 user 계정의 audit을 기록하는 테이블이라 row의 개수가 3억 건을 넘었고, 테이블의 크기도 70GB에 달했습니다. 무튼, 이 테이블에 더이상 사용하지 않는 컬럼이 있어서 drop하는 작업이 필요했는데요, 사용중인 MySQL은 DDL을 실행할 때 Table Lock이 걸리기때문에 무턱대고 쿼리를 날리면 안됩니다. 이 컬럼을 drop하는 트랜잭션이 종료될 때 까지 다른 트랜잭션들은 해당 테이블에 Insert/Update/Delete 작업이 불가능하기 때문입니다. 작업에는 2시간 33분가량 걸렸습니다. 이 시간동안 I/O 작업이 불가능해 데이터의 정합성이 깨지게 된다면 회사의 골프채가 ..
2023.11.18 -
[리뷰] 객체지향의 사실과 오해
이 책을 처음 알게된 것은 작년 여름이다. 인프런에서 김영한님 강의를 듣고 있는데, 영한님이 불쑥 이 책을 꺼내시더니 추천하셨다. "주니어라면 반드시 읽어야 하는~" 이런 뉘앙스로 말씀하셨던게 기억나서, 지난 주 일요일에 알라딘 가서 구매했다. 갑자기 왜 책을 샀냐면, 요즘 월~금에는 지하철을 왕복 80분을 타는데.. 이 시간을 잘 활용해보고 싶어서다. 유튜브 쇼츠를 보는 시간이 늘어날수록 점점 장문의 글을 읽지 못하는 사람이 되는 것 같았다. 참고로 책이 지하철에서 읽기 딱 좋은 핸디한 사이즈다. 저자가 책의 제목은 한 줄로 정리가능하다. 객체지향은 클래스도, 현실 세계의 모방도 아니다. 새로운 세계를 창조하는 것이다. 책은 이상한 나라의 엘리스의 장면을 토대로 '객체', '역할과 책임', '메시지' ..
2023.07.23 -
SpringBoot + GraphQL (2/2)
들어가며 이번 포스팅에서는 SpringBoot 환경에서 GraphQL을 간단히 실습해봅니다. GraphQL에 대한 소개와 설명은 이전 포스팅을 참고해주세요. Spring에서 공식적으로 Spring for GraphQL을 Release했습니다. 다만, Spring for GraphQL을 사용하시려면 SpringBoot 버전을 2.7 이상으로 맞춰주셔야 합니다. 위의 사진에서 release announcement 링크는 아래에 있습니다. Spring for GraphQL이 QueryDSL도 지원하며, HTTP나 WebSocket 클라이언트에서도 사용할 수 있다고 합니다. Spring 예제처럼 Graphql을 이용한 PetClinic 프로젝트 코드도 찾아볼 수 있습니다. https://spring.io/blo..
2023.07.22 -
SpringBoot + GraphQL (1/2)
들어가며 최근에 TypeScript + GraphQL을 경험했습니다. Spring 서버에서는 GraphQL을 어떤 방식으로 제공하는지 궁금해서 간단히 실습했습니다. 이번 포스팅에서는 GraphQL이 무엇이며, 장/단점은 무엇인지에 대해 다룹니다. SpringBoot에서 GraphQL을 어떻게 사용하는지는 다음 포스팅을 참고해주세요. GraphQL이란? GraphQL(gql)은 페이스북에서 만든 쿼리 언어입니다. '쿼리 언어' 하면 SQL이 가장 먼저 떠오르는데요, SQL은 데이터베이스 시스템에 저장된 데이터를 효율적으로 가져오는 것이 목적이고, gql은 웹 클라이언트가 데이터를 서버로 부터 효율적으로 가져오는 것이 목적입니다. 따라서 sql의 문장(statement)은 주로 백앤드 시스템에서 작성하고 호..
2023.07.13