
Database/SQL
database/sql 패키지로 Go에서 SQL 데이터베이스 접근을 마스터하세요: 연결, 쿼리, 트랜잭션, prepared statements, 커넥션 풀 관리.
22 면접 질문·
Mid-Level
1DB.Query와 DB.Exec의 주요 차이점은 무엇입니까?
1
DB.Query와 DB.Exec의 주요 차이점은 무엇입니까?
답변
DB.Query는 데이터 행을 반환하는 SELECT 쿼리를 실행하는 데 사용되며, DB.Exec는 결과를 반환하지 않는 SQL 명령(INSERT, UPDATE, DELETE)을 실행하는 데 사용됩니다. Query는 반복 처리하고 rows.Close()로 닫아야 하는 Rows 객체를 반환하는 반면, Exec는 영향받은 행 수와 마지막으로 삽입된 ID를 포함하는 Result를 반환합니다.
2쿼리 후에 Rows 객체를 닫는 것이 중요한 이유는 무엇입니까?
2
쿼리 후에 Rows 객체를 닫는 것이 중요한 이유는 무엇입니까?
답변
rows.Close()로 Rows를 닫으면 database 연결 리소스가 해제되어 연결이 pool로 돌아갈 수 있습니다. 닫지 않으면 연결이 사용 중 상태로 남아 pool이 고갈되어 블로킹을 일으킬 수 있습니다. 이후에 오류가 발생하더라도 닫힘을 보장하기 위해 Query 오류를 확인한 직후에 defer rows.Close()를 사용하는 것이 권장됩니다.
3결과에서 단일 행을 가져오려면 어떤 메서드를 사용해야 합니까?
3
결과에서 단일 행을 가져오려면 어떤 메서드를 사용해야 합니까?
답변
DB.QueryRow는 단일 행을 가져오도록 특별히 설계되었으며 Row 객체(단수)를 반환합니다. Rows를 반환하여 rows.Next()로 반복해야 하는 Query와 달리, QueryRow는 직접 scan을 허용하여 코드를 단순화합니다. 오류 처리는 Scan 중에 이루어지며, sql.ErrNoRows는 행을 찾지 못했음을 나타냅니다.
4
database/sql로 데이터베이스 연결을 여는 방법은 무엇입니까?
5
rows.Scan() 메서드는 무엇을 반환합니까?
+19 면접 질문
기타 Go 면접 주제
Go 기초
Junior
25개 질문Go 데이터 구조
Junior
20개 질문Go 인터페이스
Junior
18개 질문에러 처리
Junior
20개 질문Goroutine 기초
Junior
20개 질문Channels
Junior
22개 질문Go Modules
Mid-Level
18개 질문HTTP 서버
Mid-Level
24개 질문HTTP 클라이언트
Mid-Level
18개 질문JSON 인코딩
Mid-Level
20개 질문context 패키지
Mid-Level
20개 질문Testing
Mid-Level
22개 질문동시성 패턴
Mid-Level
24개 질문동기화 프리미티브
Mid-Level
22개 질문Go 웹 프레임워크
Mid-Level
20개 질문REST API 설계
Mid-Level
20개 질문gRPC
Mid-Level
22개 질문Reflection
Senior
20개 질문메모리 관리
Senior
24개 질문성능 최적화
Senior
22개 질문Generics
Senior
20개 질문Go Design Patterns
Senior
24개 질문Microservices
Senior
24개 질문보안 및 인증
Senior
24개 질문Docker & Containerization
Senior
20개 질문Kubernetes Basics
Senior
22개 질문고급 Go
Senior
20개 질문CLI 개발
Senior
20개 질문