전체 글 280

HTTP 상태코드

🧫 상태코드클라이언트가 보낸 요청의 처리를 응답에서 알려주는 기능1xx (Informational) : 요청이 수신되어 처리중2xx (Successful) : 요청 정상 처리3xx (Redirection) : 요청을 완료하면 추가 행동이 필요4xx (Client Error) : 클라이언트 오류 , 서버가 요청을 수행할 수 없음5xx (Server Error) : 서버오류, 서버가 정상 요청을 처리하지 못함모르는 상태코드-> 상위 상태코드로 해석해서 처리ex) 234 ? -> 2xx (Successful)로 처리✖️ 1xx -Informational-거의 사용하지 않음✅ 2xx -Successful-200 OK요청 성공201 Created요청 성공해서 새로운 리소스가 생성됨생성된 리소스는 응답의 Loca..

Back-End/HTTP 2024.08.17

HTTP - 메서드

🖊️ API URI 설계리소스 식별 중점✔️ 리소스의 의미회원CRUD를 예로 들어보자회원 등록, 수정, 조회 자체가 리소스는 아니다.회원 이라는 개념 자체가 리소스가 된다.✔️ 리소스 식별방법회원의 CRUD(기능)를 모두 배제하고회원이라는 리소스만 식별 -> 회원 리소스를 URI에 매핑✔️ 계층 구조를 활용회원 목록 조회 /members회원 조회 /members/{memberId}회원 등록 /members/{memberId}...계층 구조상 상위를 컬렉션으로 보고 복수단어 사용 권장그렇다면 어떻게 구분할까?리소스와 행위를 분리 하는 것이다.📬 GET,POST✔️ GET : 리소스 조회리소스 조회서버에 전달하고 싶은 데이터는 query를 통해서 전달지원하지 않는 서버가 많아서 메시지 바디를 허용하지 않..

Back-End/HTTP 2024.08.17

HTTP 기본

💠HTTP?'Hyper Text Transfer Protocol'➡️ HTML같은 리소스 데이터들을 주고받는 프로토콜모든 것 전송 가능HTML,TEXT, 이미지, 음성, 영상,JSON,XML(API) 등일반적으로 알려진 거의 모든 파일을 전송서버 간 데이터 통신에도 대부분 HTTP를 사용TCP : HTTP/1.1, HTTP/2UDP : HTTP/3HTTP/1.1 주로 사용하지만 구글이나 네이버같은 사이트를 보면 HTTP/2, HTTP/3를 많이 사용한다.해당 사이트에서 어떤 프로토콜을 사용하는 지 보는 방법크롬 브라우저를 기준으로 F12를 눌러 NETWORK상태 창에서Protocol을 보면 나온다 .없을시 저 부분을 우클릭하여 프로토콜을 추가만약 아무것도 안나올 시 Filter부분에 뭔가 있는지 확인?..

Back-End/HTTP 2024.08.17

IncorrectResultSetColumnCountException - JdbcTemplate

예외 발생멤버 전체조회 코드를 짜고 테스트했는데IncorrectResultSetColumnCountException 예외가 터졌다예외에서 코드 따라가보니public List findAll() { String sql = "select * from member"; List members = template.queryForList(sql, Member.class); return members;}여기서 문제가 발생했다.queryForList 메서드를 추적해서 가져왔다@Overridepublic List queryForList(String sql, Class elementType) throws DataAccessException { return query(sql, getSingleColumnR..

문제해결 2024.08.17

크롬 개발자도구(f12) network 빈 화면 나오는 현상

스프링으로 실습하다가 f12를 눌러 응답 정보를 보려는데아무것도 안뜨는 현상이 나왔다.원인을 찾다가 두 가지를 발견하였다. Filter에 남아있는 문자Filter에 있는 More filters에 Blocked response cookies 이 두개 때문에 아무것도 안뜨는 거였다.1번은 예전에 체크할 거 있어서 그렇다 치는데2번은 누른 적이 없는데 왜 저게 되어있는지 모르겠다...Filter에 있는 문자 지우고 Bloked response cookies 체크 해제해줬더니 해결됐다.

문제해결 2024.08.17

Lambda & Stream

✔️ lambda(람다)람다식은 메서드로 전달할 수 있는 익명 함수를 단순화한 코드 블록() -> {}() : 파라미터-> : 화살표{} : 실행문람다식은 함수 자체를 전달 인자로 보내거나 변수에 저장하는 것이 가능람다식에서 타입이 예측가능하다면 생략 가능특정 람다식을 사용하여 변수에 담는데 그 변수의 타입은 함수형 인터페이스 타입이다.함수형 인터페이스 : 하나의 추상 메서드를 갖는 인터페이스함수 디스크립터 : 함수형 인터페이스의 추상 메서드 시그니처메소드 시그니쳐 : 메소드의 이름 + 메소드의 파라미터 + 파라미터의 수  함수형 인터페이스함수 디스크립터 기본형 특화 PredicateT -> booleanIntPredicate, LongPredicate, DoublePredicateConsumerT ->..

JAVA 2024.08.17

Optional<T>

✔️ Optional이란 ?Optional은 NullPointException 발생 방지를 위해 사용 Java8Optional는 null 이 올 수 있는 값을 감싸는 Wrapper 클래스  ✔️ null 체크기존에는 if문을 사용해서 null 체크List list = store.get("itemName");if ( list == null) { log.info("없는 상품"); // 처리 }public final class Optional { /** * 빈 optional을 공통객체로서 가지고 있다. */ private static final Optional EMPTY = new Optional(null); /** * null이 아닐 경우 값이 담기고, nul..

JAVA 2024.08.17

스프링 고급편 - 로그 추적기

✔️ 로그 추적 [TraceId] 깊이 ->(방향) (호출 메서드) (종료시간) (예외) 로그를 남김으로써 어떤 부분에서 문제가 있는지, 예외가 발생하는지 빠르게 확인이 가능하다. TraceId 와 TraceStatus 클래스를 만들어서 트랜잭션 ID(DB 트랜잭션X) 와 level(깊이), 메세지를 로그로 남긴다. public class TraceId { private String id; private int level; public TraceId() { this.id = createId(); this.level = 0; } private TraceId(String id, int level) { this.id = id; th..

백준 2579번 : 계단 오르기 자바

🧫 문제 분석✔️ 출처계단 오르기 실버 3 📖 문제 dp 문제로나올 수 있는 경우는 1.  2칸을 점프해서 도달2.  2칸 점프 + 한칸 앞으로 인 경우 뿐이다.  따라서  // 2칸 점프 도달 2칸 점프 후 한칸 앞으로 dp[i] = Math.max(dp[i-2] + stairs[i], dp[i-3] + stairs[i-1] + stairs[i]) 🔅 문제 풀이import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStre..

baekjoon/DP 2024.08.15

백준 1436번 : 1로 만들기 자바

🧫 문제 분석✔️ 출처1로 만들기 실버 3 📖 문제 3으로 나눴을 때 2로 나눴을 때 1을 뺐을 때   3가지 경우 중 더 작은 값을 찾으면 된다.  6을 예시로 보면6 / 3 의 최솟값 dp[6 / 3] + 1,6 / 2 의 최솟값 dp[6 / 2] + 1,6 - 1 의 최솟값 dp[6 - 1] + 1dp[2] = 1, dp[3] = 1, dp[5] = 3+1을 해주는 이유는 6에 대해 연산을 해주었기때문이다.  따라서 dp[6] = 2이다.   🔅 문제 풀이import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new Buff..

baekjoon/DP 2024.08.15