전체 글106 String 문자열 비교시 equals(), hashcode() 오버라이딩 이유 equals()와 hashCode()의 비교 방식**equals()는 문자열 **값(내용)을 비교합니다. // "hello"와 "hello"가 서로 다른 메모리 주소에 있더라도, equals()는 그 안에 담긴 문자열의 내용(h, e, l, l, o 순서)이 같은지를 비교해서 true를 반환합니다.**hashCode()는 주소를 직접 비교하는 것이 아닙니다. // hashCode()는 문자열의 **값(내용)**을 기반으로 **해시 코드(정수 값)**를 생성합니다. String 클래스에서 hashCode()는 문자열 내용을 가지고 특정 알고리즘에 따라 고유한 숫자를 만듭니다. 이 숫자가 같으면 내용이 같다고 볼 수 있는 확률이 높다는 것을 의미합니다.헷갈릴 수 있는 부분일반적인 객체(Object 클래스에서.. 2025. 7. 20. CSRF와 XSS: 개념과 방지 방법 1. CSRF(Cross-Site Request Forgery)1.1. CSRF란?CSRF는 공격자가 사용자의 권한을 악용하여, 사용자가 의도하지 않은 요청을 특정 웹 애플리케이션에 보내는 공격 기법입니다.예를 들어, 사용자가 은행에 로그인한 상태에서 공격자가 만든 악성 웹사이트를 방문하면, 공격자의 스크립트가 사용자의 인증된 세션을 이용해 금전 거래 요청을 보낼 수 있습니다.1.2. CSRF의 작동 방식사용자가 정상적으로 웹사이트(예: 은행)에 로그인하여 세션을 유지하고 있습니다.공격자는 악성 링크나 스크립트를 포함한 이메일, 메시지, 웹사이트 등을 사용자가 클릭하도록 유도합니다.사용자가 악성 링크를 클릭하면, 공격자는 사용자의 인증된 세션 쿠키를 이용해 의도하지 않은 요청을 해당 웹사이트로 보냅니다... 2025. 1. 21. 세션 스토리지와 로컬 스토리지 브라우저 저장소(Session Storage와 Local Storage) 완벽 정리1. 세션 스토리지(Session Storage)1.1. 특징세션 단위 저장소세션 스토리지에 저장된 데이터는 브라우저의 탭 단위로 저장됩니다.브라우저 탭이 닫히면 해당 탭의 세션 스토리지가 사라집니다.동일한 탭에서만 접근 가능같은 브라우저의 다른 탭이나 창에서는 접근할 수 없습니다.데이터 용량일반적으로 약 5MB 크기의 데이터를 저장할 수 있습니다.1.2. 사용 예시javascript// 데이터 저장 sessionStorage.setItem('key', 'value');// 데이터 가져오기 const value = sessionStorage.getItem('key'); console.log(value); // 출력: 'va.. 2025. 1. 21. Vue.js + Spring 네이버 맵스 사용하기 4 (Direction 5 API) 이번에는 저번에 했던거에서 좌표(경도, 위도) 값을 통해서 출발지와 도착지를 작성하면 어떻게 찾아갈 수 있는 지 값을 주는 Direction 5 API를 사용해보려고 합니다. 프론트 전체 코드 경로 검색 경로 안내 # 안내 거리 (km) 소요 시간 (분:초) {{ index + 1 }} {{ guide.instructions }} {{ (guide.distance / 1000).toFixed(2) }} {{ Math.floor(guide.duration / (1000 * 60)) }}분 .. 2025. 1. 13. Vue.js + Spring 네이버 맵스 사용하기 3 (프론트와 백엔드 연결) 이전 글에서 백엔드에서 좌표 값을 받아오는 거까지 완료하였다.이번에는 프론트엔드에서 값을 요청하여 파라미터로 값을 전달하고 주고 받는 것 까지 진행클라이언트 아이디와 시크릿 넘버는 자기 자신의 값을 넣어줘야 한다. 경로 검색 여기서는 axios 요청도 따로 처리해둬서 PathVariable 방식으로 요청하고 있다. package com.example.maptest.controller;import java.net.URI;import java.net.URLEncoder;import java.util.HashMap;import java.util.Map;import org.json.JSONArray;import org.json.JSONObject;import org.spring.. 2025. 1. 10. Vue.js + Spring 네이버 맵스 사용하기 2 (주소 검색을 통해서 정확한 주소 받아오기) 경로 검색 이렇게 코드 작성해서 gecoding으로 naver maps 에 요청을 통해서 값을 받으려고 하였으나,네이버 정책이 그렇다고 합니다.이를 해결하기 위해서는 백엔드 서버를 통해서 요청을 하든가, 프록시 서버를 통해서 요청을 해야하는데어차피 백엔드 서버를 구현할 예정이기 때문에 백엔드 코드를 하드 코딩하여 요청을 해보았습니다. @RestControllerpublic class HomeController { String clientId; String clientSecret; String query = "불정로 6"; @RequestMapping("/") public String home() { return "Hello, World"; } @RequestMapping("/api/ge.. 2025. 1. 9. 이전 1 2 3 4 ··· 18 다음