- [ CS/DBMS ][MySQL] ONLY_FULL_GROUP_BY 오류: 개념과 해결 방법2025-06-18 09:48:12MySQL ONLY_FULL_GROUP_BY 오류: 개념과 해결 방법MySQL을 사용하면서 GROUP BY 쿼리 작성 시 In aggregated query without GROUP BY, expression #N of SELECT list contains nonaggregated column ... this is incompatible with sql_mode=only_full_group_by와 같은 오류 메시지를 만나는 경우가 많다. 이 오류는 ONLY_FULL_GROUP_BY라는 MySQL SQL 모드 때문에 발생한다. 이 블로그 포스팅에서는 ONLY_FULL_GROUP_BY가 무엇인지, 왜 이런 오류가 발생하는지, 그리고 효과적인 해결 방법은 무엇인지 상세히 알아보도록 하겠다.1. ONLY_FUL..
- [ CS/DBMS ][Sequelize] `ConnectionAcquireTimeoutError` 해결: 트랜잭션과 연결 풀 관리 팁2025-06-02 23:49:11Sequelize ConnectionAcquireTimeoutError 해결: 트랜잭션과 연결 풀 관리 팁이 블로그 게시물은 Sequelize를 사용할 때 마주칠 수 있는 ConnectionAcquireTimeoutError 문제와 이를 해결하는 효과적인 방법에 대해 설명한다.1. ConnectionAcquireTimeoutError는 무엇인가?ConnectionAcquireTimeoutError는 Sequelize가 데이터베이스 연결 풀에서 새로운 연결을 확보하는 데 정해진 시간(타임아웃) 내에 실패했을 때 발생하는 오류이다. 이는 일반적으로 다음과 같은 상황에서 발생한다.연결 풀 고갈: 데이터베이스에 동시에 너무 많은 쿼리가 실행되어 모든 연결이 사용 중이거나, 사용된 연결이 제때 반환되지 않는 경우..
- [ CS/DBMS ][Sequelize] `findAll` 옵션: `raw`와 `nest`는 언제 사용할까?2025-04-28 14:15:09Sequelize findAll 옵션: raw와 nest는 언제 사용할까?Node.js에서 Sequelize ORM을 사용하다 보면 데이터를 조회하는 findAll 메서드를 자주 사용하게 된다. 이때 raw: true나 nest: true 같은 옵션들을 마주치게 되는데, 이 옵션들이 정확히 어떤 역할을 하고 언제 사용하는 것이 좋은지 정리해 보았다.1. Sequelize findAll의 기본 동작기본적으로 findAll 메서드는 데이터베이스에서 조회한 결과를 Sequelize 모델 인스턴스(Instance)의 배열로 반환한다.// 예시: User 모델 사용const users = await models.User.findAll({ where: { status: 'active' }});// users 배열..
- [ CS/DBMS ][DBMS] MySQL에서 위도, 경도 데이터 타입 어떻게 설정해야 할까? (DECIMAL 타입의 중요성)2025-04-21 17:40:38MySQL에서 위도, 경도 데이터 타입 어떻게 설정해야 할까? (DECIMAL 타입의 중요성)위치 정보를 데이터베이스에 저장하는 것은 다양한 서비스 개발에 필수적이다. 그중에서도 MySQL은 널리 사용되는 관계형 데이터베이스 관리 시스템이다. MySQL에서 위도와 경도 데이터를 저장할 때 어떤 데이터 타입을 선택해야 할지 고민하는 경우가 많다. 이번 글에서는 일반적인 방법과 함께 DECIMAL 타입 사용의 중요성에 대해 논의해 보겠다.1. 일반적인 위도, 경도 데이터 타입MySQL에서 위도, 경도 정보를 저장하기 위해 일반적으로 고려할 수 있는 데이터 타입은 다음과 같다.DECIMAL 타입: 고정 소수점 방식으로, 높은 정밀도를 요구하는 위도, 경도 정보를 정확하게 저장하는 데 가장 적합한 타입이다. 예..
- [ CS/SW공학 ][SW공학] 원앱 전략과 MSA: 하나의 경험, 다양한 아키텍처2025-04-21 15:16:34원앱 전략과 MSA: 하나의 경험, 다양한 아키텍처최근 소프트웨어 개발 분야에서 원앱 전략과 MSA(Microservices Architecture)는 중요한 화두이다. 겉보기에는 상반되는 개념처럼 보일 수 있지만, 실제로는 애플리케이션의 성장과 발전에 따라 유기적으로 연결될 수 있는 주제이다. 이번 글에서는 원앱 전략과 MSA의 개념을 살펴보고, 이 둘의 관련성에 대해 논의하고자 한다. 1. 원앱 전략: 통합된 사용자 경험원앱 전략은 하나의 통합된 애플리케이션을 통해 모든 기능과 서비스를 제공하는 방식을 의미한다. 사용자는 별도의 앱을 설치하거나 여러 웹사이트를 방문할 필요 없이, 단 하나의 앱 내에서 원하는 모든 작업을 수행할 수 있다. 초기 단계의 비교적 단순한 애플리케이션 개발에 효율적이며, 사..
- [ CS/SW공학 ][SW공학] 웹 개발 시간대(Timezone) 완벽 정복: UTC 기준 설계와 흔한 함정들2025-04-17 17:54:28웹 개발 시간대(Timezone) 완벽 정복: UTC 기준 설계와 흔한 함정들웹 애플리케이션 개발에서 시간대(Timezone) 처리는 흔히 어려움을 겪는 부분이다. "내 PC에서는 잘 나왔는데 서버 시간은 왜 다르지?", "오후 2시 데이터를 넣었는데 API 결과는 왜 이럴까?"와 같은 문제는 많은 개발자가 마주하는 현실이다. 특히 데이터베이스, 백엔드 서버, 프론트엔드 클라이언트 등 여러 컴포넌트가 얽힌 분산 환경에서는 명확한 시간대 전략 없이는 혼란과 버그가 발생하기 쉽다.이 글의 목적은 이러한 시간대 문제를 예방하고, 안정적이고 예측 가능한 시스템을 구축하기 위한 모범 사례, 특히 UTC(협정 세계시)를 표준으로 사용하는 전략을 상세히 설명하는 것이다.시간대는 왜 이리 까다로운가?지리적 다양성: 사..
- [ CS/SW공학 ][SW공학] 학교 예제로 보는 절차지향과 객체지향, 뭐가 다를까?2025-04-13 22:00:04학교 예제로 보는 절차지향과 객체지향, 뭐가 다를까?소프트웨어 개발 세계에는 크게 두 가지 중요한 프로그래밍 방식이 있다. 바로 절차지향 프로그래밍(Procedural Programming, PP)과 객체지향 프로그래밍(Object-Oriented Programming, OOP)이다. 이 둘은 마치 세상을 바라보는 다른 두 개의 렌즈처럼, 프로그램을 만들고 문제를 해결하는 방식에서 근본적인 차이를 보인다.절차지향은 '어떤 순서로 일을 처리할까?'에 집중하는 반면, 객체지향은 현실 세계처럼 데이터와 관련 기능을 하나로 묶은 '객체'들이 서로 소통하며 프로그램을 만들어나간다.이 글에서는 이 두 가지 프로그래밍 방식의 핵심 개념을 알아보고, 우리에게 친숙한 '학교 운영'을 예시로 들어 그 차이점을 쉽고 명확하..
- [ CS/네트워크 ][네트워크] 네트워크 안정성을 위한 기술2025-04-01 11:22:41네트워크 안정성을 위한 기술1. 가용성 (Availability)시스템 또는 서비스가 정상적으로 운영되어 사용 가능한 정도를 나타내는 지표.높은 가용성은 시스템 장애로 인한 서비스 중단 시간을 최소화하는 것을 의미.2. 고가용성 (High Availability, HA)시스템 장애 발생 시에도 서비스 중단을 최소화하거나 없이 지속적으로 운영될 수 있도록 설계된 시스템.이중화, 결함 감내 등의 기술을 활용하여 구현.3. 결함 감내 (Fault Tolerance)시스템 내부에 결함이 발생하더라도 전체 시스템의 기능을 정상적으로 유지할 수 있는 능력.오류 검출 및 복구 메커니즘을 통해 구현.4. 이중화 (Redundancy)시스템의 구성 요소 (하드웨어, 소프트웨어, 네트워크 등)를 하나 더 준비하여 장애 발..