BackEnd 90

[DB] 정규화(Normalization)

정규화란? 정규화(Normalization)는 데이터베이스 설계 시 데이터의 중복을 최소화하고 일관성을 유지하기 위한 과정입니다. 정규화를 통해 데이터를 체계적으로 구조화하여 데이터 무결성을 보장하고, 효율적인 데이터 관리를 도모할 수 있습니다.왜 정규화가 필요한가? 데이터 중복 방지: 중복된 데이터를 제거함으로써 데이터 일관성을 유지할 수 있습니다.업데이트 이상 제거: 데이터 수정, 삭제, 삽입 시 발생할 수 있는 비정상적인 동작을 방지합니다.데이터 무결성 보장: 데이터의 정확성과 일관성을 유지합니다.효율적인 저장공간 사용: 중복 데이터를 줄여 저장소 공간을 절약합니다.유연한 확장성 제공: 잘 정규화된 데이터베이스는 새로운 데이터를 추가하거나 변경하기 쉽습니다.정규화의 단점 복잡성 증가: 테이블이 세분..

BackEnd/MySQL 2025.01.09

[API]coolsms(쿨에스엠에스)를 이용한 문자 전송 구현

CoolSMS란? - 카카오 알림톡 및 문자메시지 웹 발송을 지원해주는 REST API 제공 서비스- 단문, 장문, 포토 메시지 등을 보낼 수 있음  세상에서 가장 안정적이고 빠른 메시지 발송 플랫폼 - 쿨에스엠에스손쉬운 결제 전용계좌, 신용카드, 계좌이체 등 국내 결제 뿐만 아니라 해용신용카드로 한번의 카드번호 등록으로 자동충전까지 지원합니다. 전용계좌, 신용카드, 계좌이체 등 다양한 결제 방식coolsms.co.kr 1. 가입후 상단 메뉴에서 개발/연동  → API Key관리 클릭 2. 새로운 API Key 생성 3. 발급받은 API KEY, SECRET 키 저장해두기 [build.gradle] 의존성 주입implementation 'net.nurigo:sdk:4.3.0'** Gradle 버전 확인하..

BackEnd 2024.12.02

[Java]equals, hashcode 차이

**equals와 hashCode는 Java의 Object 클래스에서 기본 제공되는 메서드로, 객체 비교 및 해시 기반 컬렉션(HashMap, HashSet 등)의 동작에 중요한 역할을 합니다. 1. equals 메서드 두 객체가 논리적으로 같은지를 비교하는 데 사용 public boolean equals(Object obj) { return (this == obj);}@Overridepublic boolean equals(Object obj) { if (this == obj) return true; if (obj == null || getClass() != obj.getClass()) return false; Person person = (Person) obj; return ..

BackEnd/Java 2024.11.28

[Spring]Gradle을 이용한 jar 파일 Build 및 배포

1. 용어 및 특징 정리 1) 컴파일(Compile) C, Java 같은 프로그래밍 언어로 작성된 소스 코드를 컴퓨터가 이해할 수 있는 기계어(이진수)로 변환하는 과정 (번역) 컴파일러 : 컴파일을 해주는 프로그램 2) 빌드(Build) 소스 코드를 컴퓨터가 실행 가능한 형태로 변환하는 과정 소스 코드 컴파일 및 필요한 리소스 파일들을 함께 패키징하여 실행/배포 가능한 애플리케이션 또는 라이브러리(예: JAR 파일)를 만들어냄 빌드 시 코드의 오류를 검사, 의존성 관리, 테스트 수행, 코드 최적화 등 수행 가능 3) 배포(Deploy) 소프트웨어나 애플리케이션을 실제 사용자가 접근/이용할 수 있는 환경에 설치하고 실행 가능하도록 하는 과정 웹 애플리케이션의 경우 배포 시 http 요청/응답을 할 수 있는..

BackEnd/Spring 2024.11.27

[Spring] 알림 보내기

SSE(Server-Sent Events) 클라이언트(응답) - 서버가 클라이언트에게 실시가능로 데이터를 전송할 수 있는 기술 - HTTP 프로토콜 기반으로 동작 - 단방향 통신(ex: 무전기) 1) 클라이언트가 서버에 연결  -> 클라이언트가 서버로 부터 데이터 받기 위한      대기상태에 돌입     (EventSource 객체 이용) 2) 서버가 연결된 클라이언트에게 데이터를 전달 (서버 -> 클라이언트 데이터 전달하라는  요청을 또 AJAX를 이용해 비동기 요청)  [common.html] [header.html]  [N..

BackEnd/Spring 2024.10.17

[Spring]예외처리

예외 처리[이유] 프로그램의 비정상 종료를 막기 위해서- throws : 메서드에서 발생한 예외를 호출부로 던짐 - try-catch : try 안에서 발생한 예외를 catch에서 잡아서 처리*기본적으로 Spring에서 발생하는 대부분의 예외를   한 번에 처리하여 에러 페이지로 넘어가게 하는 ErrorController를 제공함 @ControllerAdvice 프로젝트 전역(global)에서 발생하는 예외를 처리하는컨트롤러임을 명시 + Bean 등록@ResponseStatus(응답 상태 코드)응답 시 응답 상태 코드를 지정하는 어노테이션 [ErrorController] 1. DB 관련 예외 처리 메서드(500 에러 페이지)@ControllerAdvicepublic class ErrorController..

BackEnd/Spring 2024.10.15

[spring]인터셉터(Interceptor)

Interceptor  - 요청/응답을 가로채는 객체 (Spring 지원) Client Filter Dispatcher Servlet  Interceptor Controller .... ( 기본 흐름 : Client Dispatcher Servlet Controller... )- HandlerInterceptor 인터페이스 상속 필요 - 제공 메서드 중 필요한 메서드 오버라이딩 1) preHandle() - 전처리 Dispathcher Servlet -> Controller 사이에 요청/응답을 가로채서 수행 2) postHandle() - 후처리Controller -> Dispathcher Servlet 사이에 요청/응답을 가로채서 수행 3) afterCompletion() - forward된 ..

BackEnd/Spring 2024.10.14