- [ CS/SW공학 ]JSON, Python의 딕셔너리(Dictionary), JavaScript의 객체(Object) 용어 정리: 필드, 속성, 키 그리고 함수의 매개변수2025-08-20 13:37:23JSON, Python의 딕셔너리(Dictionary), JavaScript의 객체(Object) 용어 정리: 필드, 속성, 키 그리고 함수의 매개변수1. 데이터 구조 용어 정리: 키, 속성, 필드JSON, 파이썬 딕셔너리, 자바스크립트 객체는 모두 키(Key)-값(Value) 쌍으로 데이터를 저장하는 공통점이 있다. 이 키는 데이터를 식별하는 이름 역할을 한다. 이 키를 부르는 용어는 상황에 따라 다양하다.키 (Key)정의: JSON, 딕셔너리, 객체에서 값을 식별하는 고유한 이름이다.사용 예: {"name": "Gemini"}에서 "name"이 키다.속성 (Property)정의: 객체가 가진 특성이나 상태를 나타내는 데이터 항목을 의미한다.사용 예: 자바스크립트 객체의 obj.name에서 name이 ..
- [ CS/SW공학 ]인자(引子)와 인수(引數)의 모호함, 명확하게 정리하기2025-08-20 13:19:48인자(引子)와 인수(引數)의 모호함, 명확하게 정리하기1. 인자와 인수의 혼동, 왜 발생할까?프로그래밍을 공부하다 보면 함수를 정의하고 호출할 때 '인자'와 '인수'라는 용어 때문에 혼란을 겪는 경우가 많다. 이 두 용어는 엄밀히 말해 서로 다른 개념을 지칭하지만, 한국어 번역 과정과 실무에서의 혼용 때문에 의미가 뒤섞여 사용되고 있다.2. Parameter vs. Argument, 영어 원어를 먼저 이해하자이러한 혼란을 해결하는 가장 좋은 방법은 한자어 풀이가 아닌, 영어 원어인 Parameter와 Argument를 기준으로 개념을 이해하는 것이다.Parameter (매개변수)정의: 함수를 정의할 때 사용하는 변수의 이름이다. 함수가 어떤 종류의 데이터를 받을지 그 형식과 이름을 정한다.용어의 유래: ..
- [ CS/네트워크 ]내 웹사이트 보안, 어떻게 시작해야 할까? HTTPS 적용 A to Z2025-07-24 14:41:34내 웹사이트 보안, 어떻게 시작해야 할까? HTTPS 적용 A to Z웹사이트를 운영하고 있다면 보안은 가장 중요한 고려 사항 중 하나이다. 특히 개인 정보나 중요한 데이터를 다루는 웹사이트의 경우, 보안에 조금이라도 소홀하면 심각한 문제로 이어질 수 있다. 웹사이트 보안의 첫걸음이자 핵심은 바로 HTTPS(Hypertext Transfer Protocol Secure)를 적용하는 것이다. 이번 글에서는 HTTPS가 왜 중요한지, 그리고 어떻게 적용할 수 있는지 A부터 Z까지 자세히 알아보자.1. 웹 보안의 기초: HTTP의 위험성우리가 인터넷을 사용할 때 흔히 보는 주소창의 'http://'는 웹 서버와 브라우저가 통신하는 기본 프로토콜이다. 하지만 HTTP는 데이터를 암호화하지 않고 그대로 주고받기 ..
- [ CS/SW공학 ]로이 필딩이 처음 의도한 REST API2025-07-15 09:48:13로이 필딩이 처음 의도한 REST API로이 필딩(Roy Fielding)이 2000년 박사학위 논문 "Architectural Styles and the Design of Network-based Software Architectures"에서 처음 제안한 REST(Representational State Transfer)는 오늘날 흔히 사용되는 'REST API'와는 다소 차이가 있다. 필딩이 의도한 REST는 특정 기술이나 프로토콜이 아닌, 분산 하이퍼미디어 시스템(예: 월드 와이드 웹)을 위한 아키텍처 스타일(Architectural Style)이다. 이는 웹의 확장성, 일반성, 독립적인 진화를 지원하기 위한 설계 원칙들의 집합이다.1. REST의 탄생 배경과 핵심 사상필딩은 HTTP/1.0 및 1..
- [ 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 타입: 고정 소수점 방식으로, 높은 정밀도를 요구하는 위도, 경도 정보를 정확하게 저장하는 데 가장 적합한 타입이다. 예..