분류 전체보기 (47) 썸네일형 리스트형 HTTP & REST 심화 개념을 더 깊게 파보자 📘 1. HTTP/1.1 vs HTTP/2 차이점 항목HTTP/1.1HTTP/2요청 처리한 커넥션에 1개 요청 (직렬 처리)하나의 커넥션에서 여러 요청 동시 처리 (멀티플렉싱)헤더텍스트 기반, 중복 많음바이너리 기반, 헤더 압축됨 (HPACK)속도느림, 병목 현상 있음빠름, 네트워크 효율성↑서버 푸시없음있음 (클라이언트 요청 전에 서버가 자원 미리 보내줌)🧠 예시:HTTP/1.1은 JS, CSS, 이미지 등 리소스를 동시에 로딩 못 해서 느림→ 그래서 스프라이트 이미지, JS 번들링 같은 최적화 기법이 필요했어.🔒 2. HTTPS 동작 원리 (TLS handshake)클라이언트-서버 간 암호화된 통신을 가능하게 해줌.⛓️ 과정 요약:클라이언트 → 서버: "너 인증서 보여줘"서버 → 클라이언트: "이.. HTTP에서 꼭 알아야 할 핵심 요소들에는 어떤 것들이 있을까 ✅ 1. HTTP 메서드 (Methods)요청의 의도를 나타내는 거야. 대표적으로:메서드설명GET데이터 조회 (서버에서 정보 가져오기)POST새로운 데이터 생성 (폼 제출 등)PUT기존 데이터 전체 수정PATCH기존 데이터 부분 수정DELETE데이터 삭제🧠 예시:GET /users/123 HTTP/1.1 POST /users HTTP/1.1✅ 2. HTTP 상태 코드 (Status Codes)서버가 클라이언트의 요청에 어떻게 응답했는지를 알려주는 숫자 코드야.🔢 주요 코드 정리:200 OK: 정상 처리 완료201 Created: 생성 완료 (주로 POST 요청 결과)204 No Content: 성공했지만 응답 본문 없음400 Bad Request: 잘못된 요청401 Unauthorized: 인증 필요.. 왜 개발자는 HTTP를 알아야 할까 개발자가 HTTP(HyperText Transfer Protocol)를 알아야 하는 이유는 웹 개발과 관련된 거의 모든 작업의 기반이 되기 때문이다. 구체적으로 이유를 몇 가지로 정리해보자. 1. 클라이언트-서버 통신의 핵심웹 브라우저(클라이언트)가 서버에 요청을 보낼 때 HTTP를 사용한다.예: 사용자가 웹페이지에 접속하면 브라우저는 서버에 GET 요청을 보내고, 서버는 HTML/CSS/JS를 HTTP 응답으로 돌려준다.2. API 개발과 사용REST API, GraphQL API 등 대부분의 웹 API는 HTTP 기반이다.클라이언트(앱, 프론트엔드 등)와 서버(백엔드)는 HTTP 메서드(GET, POST, PUT, DELETE 등)로 통신한다.백엔드 개발자라면 HTTP 요청/응답의 구조, 상태 코드(.. null-safe 체크 팁!! ✅ 1. List / Set / Map🔥 직접 체크if (list != null && !list.isEmpty()) { // 비어있지 않은 리스트 처리 }🧰 Apache Commons Collections 사용 (null-safe)import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.MapUtils; if (!CollectionUtils.isEmpty(list)) { // null-safe } if (!MapUtils.isEmpty(map)) { // null-safe }✅ 2. String🔥 직접 체크if (str != null && !str.isEmpty()) { // 내용이 있는.. HttpSession, HttpServletRequest, HttpServletResponse의 차이점 톺아보기 📌 자바에서 Session, Request, Response 차이점자바 웹 개발(Spring Boot, Servlet 등)에서 session, request, response는 모두 클라이언트와 서버 간의 통신을 다룰 때 사용되는 객체다. 각각의 역할과 차이점을 톺아보자.1️⃣ HttpSession (세션)👉 특정 클라이언트(사용자)와 서버 간의 상태를 유지하는 객체✅ 특징클라이언트가 서버에 접속하면 고유한 세션 ID가 생성됨.세션에 데이터를 저장하면 여러 요청(request)에서도 유지 가능 (로그인 정보 등).보통 session.invalidate()를 호출하거나 일정 시간이 지나면 세션이 만료됨.✅ 예제 (세션 저장 & 가져오기)HttpSession session = request.getSess.. java.lang.IllegalAccessError:cannot access class com.sun.crypto.provider.SunJCE (in module java.base) because module java.base does not export com.sun.crypto.provider to unnamed module 오류 해결 방법 ✅ java.lang.IllegalAccessError: cannot access class com.sun.crypto.provider.SunJCE 오류 해결 방법이 오류는 Java 9 이상에서 모듈 시스템이 적용되면서 com.sun.crypto.provider.SunJCE에 접근할 수 없기 때문에 발생합니다.Java 8에서는 문제가 없었지만, Java 9 이상에서는 java.base 모듈이 com.sun.crypto.provider 패키지를 외부로 노출하지 않기 때문에 발생합니다.🔹 1. 해결 방법: JVM 옵션 추가하기 (--add-exports)JVM 실행 시 --add-exports 옵션을 추가하여 강제로 접근을 허용하면 해결됩니다.(1) IntelliJ에서 설정하는 방법1️⃣ Run → Edi.. 2024년 회고 오랜만에 블로그에 글을 쓰네요. 마지막에 글을 쓴 게 7월이었으니까 근 6개월만이네요. 다시 블로그에 글을 간간히 올릴 예정입니다. 그동안은 개발 관련 글만 올렸다면 이제는 일상 글도 자주 올리겠슴다 8월에 첫 구축 프로젝트에 투입이 돼서 남은 2024년을 정신없이 보냈네요. 시간이 어떻게 흘러갔는지 모르겠어요. 정신 차려보니까 2025년이에요는 구링~!~! 사실 그 정도는 아닌데ㅎㅎ 그만큼 시간이 후딱 지나긴 했어요. 이 글을 보실 분들이 얼마나 되실 지는 모르겠지만 다들 작년 한 해동안 별탈 없으셨는지요. 별탈 없으셨기를 바라고 올 한 해도 무탈히 지내셨으면 좋겠습니다. 오랜만에 온 김에 작년을 회고하는 시간을 가져볼까 해요. 저는 작년 1월 22일, 지금의 회사에 입사를 했어요. 개발 국비학원을 .. 지정한 날짜에 스케쥴러 건너뛰기 이전에 스케쥴러를 사용해서 카카오 알림톡으로 미출퇴근 알림을 보내는 기능을 구현한 적이 있다. 해당 업체에서 메뉴를 하나 추가해서 날짜를 지정하면 해당 날짜에는 알림톡을 발송하지 않는 기능을 추가해달라는 요청을 받았다. 처음에는 달력 라이브러리를 사용해서 구현을 할 생각이었다. 메뉴를 클릭했을 때 화면에 캘린더를 띄우고 거기서 날짜를 클릭해서 저장하고 수정하고 삭제하는 방향으로 잡았다. 하지만 시간이 많이 없었기 때문에 기존 메뉴 하나를 참고해서 리스트 형식으로 구현을 하기로 했다.조회 창에서는 좌측 상단에 input 태그를 하나 만들고 클릭 시에 작은 캘린더가 나오는 형식으로 설계했다. 날짜를 선택했을 때 등록된 휴일이 있다면 내용이 밑에 리스트 형식으로 출력된다. 휴일 등록창에서는 휴일명과 시작일과 .. 이전 1 2 3 4 ··· 6 다음