전체 글 563

인프런 워밍업 클럽 0기 - BE 2일차 과제

문제 1 두 수를 입력하면, 다음과 같은 결과 나오는 GETAPI를 만들어 보자! path : /api/v1/calc이다. 쿼리 파라미터 : num1, num2 1. CalculatorController @RestController public class CalculatorController { @GetMapping("/api/v1/calc") public Calc Calculator(CalcNumber request) { return new Calc(request); } } 2. Calc Class package com.group.libraryapp.homework; public class Calc { private int add; private int minus; private int multiply..

Inflearn 2024.02.21

인프런 워밍업 클럽 0기 - BE 1일차 과제

[질문] 어노테이션을 사용하는 이유 (효과) 는 무엇일까? 어노테이션의 의미는 주석 -> 인터페이스를 기반으로 한 문접(어노테이션을 생성하는 방싱에서 @interface를 사용한다.) 메타 데이터로 이용되고 클래스, 메서드, 변수, 매개변수 및 패키지 등에 주석처럼 달아서 사용함. 기존 자바 웹 애플리케이션들은 설정값을 XML 파일에 명시하여 관리 -> 변경될 수 있는 데이터들은 코드가 아닌 외부 설정 파일에 분리하기 때무넹, 재컴파일 없어도 쉽게 변경사항이 저장 가능하다. 기존의 자바 웹 애플리케이션들은 대부분 설정값을 XML파일에 명시하영 관리 / 변경될 수 있는 데이터들은 코드가 아닌 외부 설정 파일 XML에 분리하기 때문에 재컴파일 없이도 쉽게 변경사항 저장 가능 이러한 문제점을 해결하기 위해 고..

Inflearn 2024.02.19

Network

네트워크의 기초 TCP/IP 4계층 모델 네트워크 기기 IP 주소 HTTP 2.1네트워크의 기초 네트워크 => 노드, 링크가 서로 연결되어 있거나 연결되어 있는 상태 => 리소스를 공유하는 집합 노드(서버, 라우터, 스위치 등 네트워크 장치) 링크(유선, 무선) 2.1.1처리량과 지연 시간 네트워크 구축 => 좋은 네트워크를 만드는 것이 중요 => 많은 처리량(트래픽)을 처리할 수 있고 지연 시간(latency)이 짧고 장애 빈도가 적으며 좋은 보안을 갖춘 네트워크 시간(데이터 처리 시간) 트래픽(많은 데이터 처리량) 대역폭(트랙픽 대역폭) => 주어진 시간 동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수 처리량(트래픽 처리량) 단위로 => bps(bits per second) => 초당 전송 또..

HTTP 2022.12.19

카카오 로그인 환경설정 % OAuth2.0 개념 이해

카카오 로그인 환경설정을 구현해주자. https://developers.kakao.com/console/app 카카오계정 로그인 여기를 눌러 링크를 확인하세요. accounts.kakao.com 애플리케이션 하나 만들어주고 REST API 키도 한개 만들어준다. web 플랫폼도 등록해준다. 도메인 주소를 사게되면 그 주소를 넣어주자. 카카오 로그인 / redirect 둘 다 활성화 해준다. 로그인이 정상적으로 진행되면 응답받을 주소이다. 카카오 동의 항목 설정도 아래와 같이 해준다. 이메일 동의도 해주는데 개발단계이기 때문에 선택동의밖에 안된다. 아래 부분 카카오 로그인의 비즈니서 설정 바로가기 부분은 하지않고 직접 로직을 코드로 다 작성한다. 카카오 로그인 OAuth2.0 쇼핑몰 VIP 등급 혜택 =>..

스프링 예외 추상화 적용 & JDBC 반복 문제 해결 - JdbcTemplate

package hello.jdbc.repository; import hello.jdbc.domain.Member; import hello.jdbc.repository.ex.MyDbException; import lombok.extern.slf4j.Slf4j; import org.springframework.jdbc.datasource.DataSourceUtils; import org.springframework.jdbc.support.JdbcUtils; import org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator; import org.springframework.jdbc.support.SQLExceptionTranslator; im..

Spring/SpringDB 2022.07.04

스프링 예외 추상화 이해

아래와 같이 스프링 데이터 접근 예외 계층에 대한 그림을 보자. 스프링이 제공하는 예외 변환기는 아래와 같은 코드이다. => SQL ErrorCode를 직접 확인하는 방법 SpringExceptionTranslatorTest의 코드는 아래와 같다. @Slf4j public class SpringExceptionTranslatorTest { DataSource dataSource; @BeforeEach void init() { dataSource = new DriverManagerDataSource(URL, USERNAME, PASSWORD); } @Test void sqlExceptionErrorCode() { String sql = "select bad grammer"; try { Connection ..

Spring/SpringDB 2022.07.04

Int vs Integer? / String, StringBuilder, List, Collections 관련 메소드 / Algorithm

String 관련 메서드 package cote.velog; import java.util.ArrayList; import java.util.List; import java.util.Locale; public class grammer { public static void main(String[] args) { String str = "abcde"; int a = str.length(); boolean b = str.isEmpty(); System.out.println(a); System.out.println(b); int c = str.charAt(2); int d = str.indexOf("c"); int e = str.lastIndexOf("c"); String aa = str.substring(2,..

JAVA 2022.06.28

데이터 접근 예외 직접 만들기

데이터를 DB에 저장할 때 같은 ID가 이미 데이터베이스에 저장되어 있다면, 데이터베이스는 오류 코드를 반환하고, 이 오류 코드를 받은 JDBC 드라이버는 SQLException 을 던진다. 그리고 SQLException 에는데이터베이스가 제공하는 errorCode 라는 것이 들어있다. 데이터베이스 오류 코드 그림을 보자. H2 데이터베이스의 키 중복 오류 코드 e.getErrorCode() == 23505 SQLException 내부에 들어있는 errorCode를 활용 => 데이터베이스에서 어떤 문제가 발생했는지 확인할 수 있다. H2 데이터베이스 예는 아래와 같다. 23505: 키 중복 오류 42000: SQL 문법 오류 키 중복 오류 코드(H2 데이터베이스 오류 코드는 여기를 참고 H2 DB: 2..

Spring/SpringDB 2022.06.28

체크 예외와 인터페이스 / 런타임 예외 적용

서비스 계층은 가급적 특정 구현 기술에 의존하지 않고 순수하게 유지하는 것이 좋다. MemberRepository 인터페이스를 도입해서 구현 기술을 쉽게 변경할 수 있게 해본다. 인터페이스를 도입하면 MemberService는 MemberRepository 인터페이스에만 의존하면 된다. 구현 기술을 변경하고 싶으면 DI를 사용해서 MemberService 코드의 변경 없이 구현 기술을 변경할 수 있다. MemberRepository 인터페이스 package hello.jdbc.repository; import hello.jdbc.domain.Member; public interface MemberRepository { Member save(Member member); Member findById(Stri..

Spring/SpringDB 2022.06.28

언체크 예외 활용

언체크 예외 활용(런타임 예외 활용) 런타임 예외 사용 - 그림 SQLException을 런타임 예외인 RuntimeSQLException으로 변환 ConnectException 대신 RuntimeConnectException을 사용하도록 바꿈 런타임 예외이기 때문에 서비스, 컨트롤러는 해당 예외들을 처리할 수 없으면 별도 선언 없이 그냥 두면 됨. 런타임 예외 사용 변환 - 코드 - UncheckedAppTest package hello.jdbc.exception.basic; import org.testng.annotations.Test; import java.net.ConnectException; import java.sql.SQLException; public class UnCheckedAppTes..

Spring/SpringDB 2022.06.22