반응형

전체 글 276

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

데이터베이스 인덱스

인덱스란?추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조 이다. 예를 들어 책에서 원하는 내용을 찾는다고 하면, 책의 모든 페이지를 찾아보는 것은 오래 걸린다. 그렇기 때문에 책의 저자들은 책의 맨 앞, 또는 맨 뒤에 색인을 추가하는데, 데이터베이스의 index는 책의 색인과 같다.   인덱스의 장점과 단점장점테이블을 조회하는 속도와 그에 따른 성능을 향상시킬 수 있다.전반적인 시스템의 부하를 줄일 수 있다.  단점인덱스를 관리하기 위해 DB의 약 10%에 해당하는 저장공간이 필요하다.인덱스를 관리하기 위해 추가 작업이 필요하다.인덱스를 잘못 사용할 경우 오히려 성능이 저하되는 역효과가 발생할 수 있다.  인덱스를 사용하면 좋은 경우규모가 작지 않은 ..

카테고리 없음 2024.11.26
반응형