반응형

전체 글 277

쿼리 튜닝 방법 (핵심,기본적인 요소)

✅ 쿼리 튜닝이란?느린 쿼리를 빠르게 만드는 작업데이터를 빠르게 가져오기 위해 인덱스, 쿼리 구조, 실행 계획을 최적화하는 것📌 1. 인덱스 (INDEX) — 가장 중요!🔹 인덱스란?책의 목차처럼, 찾고자 하는 데이터를 빠르게 찾게 해주는 구조테이블이 커질수록 인덱스 없이는 쿼리 성능이 급격히 떨어짐🔹 인덱스 확인 -- 테이블에 설정된 인덱스 조회SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID('dbo.YourTableName');🔹 인덱스 생성CREATE NONCLUSTERED INDEX idx_User_Status ON dbo.Users (Status); ⚠️ 너무 많은 인덱스를 만들면 쓰기 성능이 느려지고, 관리 복잡도가 증가하니 꼭 필요한 컬..

DB 2025.03.23

SQL 작성시 초보자가 실수할 수 있는 원리와 개념, 또 더 효율적인 쿼리

1. SQL 초보자가 자주 하는 실수✅ 1) SELECT * 남용 (불필요한 데이터 조회)🔴 문제점:모든 컬럼을 조회하면 불필요한 데이터 전송 → 성능 저하테이블 구조 변경 시 호환성 문제 발생🟢 해결 방법:필요한 컬럼만 명시적으로 조회-- ❌ SELECT * 남용SELECT * FROM users;-- ✅ 필요한 컬럼만 선택SELECT id, name, email FROM users;✅ 2) WHERE 절 없이 UPDATE / DELETE 실행🔴 문제점:WHERE 없이 실행하면 모든 데이터가 수정되거나 삭제됨데이터 손실로 복구가 어려울 수 있음🟢 해결 방법:WHERE 절을 반드시 포함하고, 실행 전에 SELECT로 확인-- ❌ 모든 데이터가 삭제됨 (대참사 발생 가능!)DELETE FROM us..

카테고리 없음 2025.03.15

API 연동시 중요한 개념, 방법론, 실수포인트 정리

1. API 연동 기본 개념API(Application Programming Interface)는 시스템 간 데이터 및 기능을 교환하는 인터페이스야. API 연동은 주로 REST API, GraphQL, gRPC 방식이 사용돼.1) API 연동 방식✅ REST API (Representational State Transfer)HTTP 기반, 가장 널리 사용됨리소스를 GET, POST, PUT, DELETE 메서드로 조작✅ GraphQL클라이언트가 원하는 데이터만 요청 가능REST보다 네트워크 사용량 절감 가능✅ gRPCHTTP/2 기반, 바이너리 포맷 사용 → 빠른 성능대규모 분산 시스템에서 사용 (ex: 마이크로서비스)2. API 설계 원칙 (Best Practices)1) RESTful API 설계 ..

카테고리 없음 2025.03.15

CRUD 개발시 중요한 개념,방법론, 실수하는 포인트

CRUD 개발의 핵심 개념1) RESTful API 원칙CRUD는 일반적으로 RESTful API와 함께 사용됨.Create → POST /resourceRead → GET /resource/{id}Update → PUT/PATCH /resource/{id}Delete → DELETE /resource/{id}💡 주의할 점POST는 리소스를 새로 생성할 때 사용하고, 같은 요청을 여러 번 보내면 중복 생성될 수 있음.PUT은 전체 리소스를 업데이트할 때, PATCH는 부분 업데이트할 때 사용.DELETE는 리소스를 삭제하지만, 실제 데이터베이스에서 완전 삭제하는 것(물리적 삭제)과 단순히 활성화 여부를 변경하는 것(논리적 삭제)을 구분해야 함.2) 트랜잭션 관리CRUD 작업 중 하나라도 실패하면 데이터..

카테고리 없음 2025.03.15

SQL 인젝션이 어떻게 발생하는가?

인젝션이란?외부에서 입력된 데이터가 애플리케이션을 실행 흐름을 변경하거나, 보안 추약점을 악용할 수 있돌고 하는 공격 기법이다.  예를 들어 보안이 취한 검색 코드를 보여주겠다.String query = "SELECT * FROM users WHERE username = '" + userInput + "'"; 사용자가 admin' --을 입력하면? SELECT * FROM users WHERE username = 'admin' --'-- 이후는 주석 처리되어 전체 사용자 데이터가 노출될 수도 있다  1. SQL 인젝션 방지 원리1. PreparedStatement 사용 ( 가장 기본적인 해결 방법)   - PreparedStatement는 SQL에 ? 플레이스홀더를 사용하여 안전하게 값을 바인딩 한다.S..

카테고리 없음 2025.03.09

Log4j, LogBack, Log4j2 장점, 단점, 차이점

Log4J, LogBack, Log4j2 에 대한 간단 설명Log4jJava에서 가장 오래된 로깅 프레임워크 중 하나 (Apache)LogbackLog4j의 후속 프로젝트로 성능 개선 및 다양한 기능 추가Log4j2Log4j를 완전히 새롭게 개선한 최신 버전  Log4J, LogBack, Log4j2  차이점 비교 개발사ApacheQOS.ch (SLF4J 개발자)Apache성능느림Log4j보다 빠름가장 빠름비동기 로깅지원 X지원 O고성능 지원 (Asynchronous Logger)자동 리로드지원 X지원 O지원 O (성능 영향 없음)플러그인 시스템지원 X지원 X지원 O기본 SLF4J 지원지원 X지원 O지원 O구성 파일XMLXML, GroovyXML, JSON, YAML, Properties  장점 과 단점..

카테고리 없음 2025.03.09

디자인 패턴 (Design Pattern) 정리

디자인 패턴이란?소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적인 문제들이 또 발생했을 떄 재사용할 수 있는 해결책이미 만들어져서 잘 되는 것을 처음부터 다시 만들 필요가 없다는 의미이다.Gof(Gang of Four)사인방(Gang of Four, 줄여 Gof) 불리는 에리히 감마(Erich Gamma), 리처드 헬름(Richard Helm), 랄프 존슨(Ralph Johnson), 존 블리시데스 (John Vissides)가 같이 썻다 싱글톤 패턴하나의 클래스에 오직 하나의 인스턴만을 가지는 패턴 장점과 단점장점 : 하나의 인스턴스를 기반으로 다른 모듈들은 해당 인스턴스를 공유하여 사용하기 때문에 인스턴스 생성에 드는 비용 절감 단점 : 의존성/종속성 향상 (인스턴스가 변경되면 그 이후에 ..

카테고리 없음 2025.01.05

Spring 면접 정리

WAS(We Application Server)와 WS(We Server)의 차이를 설명하세요WAS (Web Applicaion Server)비즈니스 로직을 넣을 수 있음Tomcat 등 (종류 더 조사)WS(Web Server)비즈니스 로직을 넣을 수 없음Nginx, Apache 등  FrameWork VS Library 프레임 워크 : 뼈대나 기반구조를 뜻하고, 제어의 역전 개념이 적용된 대표적인 기술이다. 소프트웨어에서의 프레임워크는 '소프트웨어의 특정 문제를 해결하기 위해서 상호협력하는 클래스와 인터페이스의 집합'이라 할 수 있으며, 완성된 어플리케이션이 아닌 프로그래머가 완성시키는 작업을 해야 한다.  객체 지향 개발을 하게 되면서 통합성, 일관성의 부족이 발생되는 문제를 해결할 방법 중 하나라고..

카테고리 없음 2024.12.22

Java 정리

JAVA란?JAVA는 네트워크상에서 쓸 수 있도록 미국의 선 마이크로 시스템즈가 개발한 객체 지향 프로그래밍 언어  JAVA의 특징1. 자바가상머신(JVM)만 설치하면 컴퓨터의 운영체제에 상관업이 작동한다. ( 즉, 운영체제에 독립적)2. 기본 자료형을 제외한 모든 요소들이 객체로 표현3. 객체 지향 개념의 특징인 캡슐화, 상속 , 다형성이 잘 적용된 언어4. Garbage Controll를 통한 자동적인 메모리 관리5. 멀티쓰레드 (Multi-theard)를 지원  자바의 메모리 영역에 대한 설명자바 메모리 공간은 크게 Method 영역, Stack 영역, Heap 영역으로 구분되고, 데이터 타입에 따라 할당된다. 메소드(Method) 영역 : 전역변수와 static변수를 저장하며, Method영역은 ..

Language/Java 2024.12.08

자료구조

자료구조 분류선형 자료구조 (Linear Data Structure): 데이터가 연속적 또는 순차적으로 저장종류 : 배열 (Array) , 연결리스트(LinkedList), 스택(Stack), 큐(Queue) 비선형 자료구조 (Non-linear Data Strucure) : 데이터가 계층적 또는 네트워크 구조로 저장종류 : 트리(Tree), 그래프(Graph)  선형 자료구조(Linear Daa Structure)배열(Array)정의 크기가 고저왼 연속정인 메모리 공간에 데이터를 저장인덱스를 통해 데이터에 직접 접근특징연속된 메모리 공간 : 데이터의 물리적 순서와 논리적 순서가 동일빠른 데이터 접근 : O(1)고정 크기: 배열 서언 시 크기 결정 시간 복잡도연산시간 복잡도접근O(1)탐색O(n)삽입/삭제..

카테고리 없음 2024.12.01
반응형