간단하게 말하면 특정 이벤트의 기본 동작을 막는 JavaScript메서드 입니다. 예를 들어 a태그를 누르면 href를 통해 해당 링크로 이동을 하고 button을 누르면 해당 버튼의 type대로 동작을 합니다. 하지만 preventDefault() 메서드를 호출하면 이벤트가 발생했을 때 즉, a나 button을 클릭했을 때 수행되는 기본동작들을 중단 시킬수 있습니다. 보통 preventDefault()메서드는 기본 동작을 중지하고 추가적인 동작을 수행하고자 할때 유용 합니다. 더 직관적인 예로 form태그를 통해 button으로 제출을 하는 상황입니다. JavaScript코드 $('form').on('submit', function(e) { console.log('폼이 제출되었습니다.'); }); 위 ..
게시물을 올릴 때 한글 깨짐 현상이 일어난다. 위 처럼 한글 깨짐 현상이 일어났을 때 확인 해야 할 것이 있다. 1. 브라우저에서 한글이 깨져서 전송되는가. 2. 스프링 MVC쪽에서 한글을 처리하는 필터를 등록 했는가. 브라우저에서 한글 깨짐 확인하는 법 ① 개발자 도구 클릭(우클릭 → 검사 or F12) ② Network 탭을 연상태로 데이터 보내기 ③ 해당 데이터를 보낸 페이지를 클릭하면 해당 정보가 나온다. ④ 클릭한 페이지의 페이로드를 클릭한다. ⑤ 한글이 깨진상태로 전송됬는지 확인한다. (여기서 문제가 없으면 controller 또는 데이터 베이스쪽 문제이다.) 스프링 MVC쪽에서 한글을 처리하는 필터를 등록하기 로그를 확인해 보면 브라우저에서 보낸 한글을 컨트롤러에 전달될때 깨진 상태로 전달되..
jsp가 정상적으로 URL처리가 되는지 확인 할 때 해당 프로젝트를 선택하고 Run on Server 메뉴를 통해서 실행을 하게 된다. Tomcat의 Port Number가 8080이라면 "http://localhost:8080/controller/" 이 경로로 지정되면서 위처럼 home.jsp의 경로로 가게 된다. 위 처럼 borad의 list.jsp를 확인하고 싶다면 " http://localhost:8080/controller/board/list" 로 지정하면서 해당 페이지를 확인 할 수 있다. 하지만 웹 프로젝트는 가능 하면 절대 경로를 이용하는 구조를 사용하는 것이 바람직하다. WHY? 절대 경로는 프로젝트의 안정성과 이식성을 높이며, 유지보수 및 확장성을 강화하는 데 도움이 되기 때문이라고 합..
의존성(Dependency) 하나의 객체가 다른 객체 없이 제대로된 역할을 할 수 없다는것을 의미한다. 즉, 하나의 객체가 다른 객체의 상태에 따라 영향을 받는것이다. ex ) A객체가 B객체 없이 동작이 불가능한 상황을 'A가 B에 의존적이다'라고 한다. 주입(Injection) 외부에서 밀어 넣는것을 의미한다. ∴ 의존성과 주입을 결합해서 생각하면 '어떤 객체가 필요한 객체를 외부에서 밀어 넣는다'는 의미가 된다. why? 왜 굳이 외부에서 객체를 주입해야 하나? 장사를 예로 들면 사과 샌드위치가게, 사과 샐러드가게가 있고 여러 가게에 사과를 납품하는 납품회사가 있다고 가정해보면 이해하기 쉽다. 사과를 납품하는 회사는 여러가게에 사과라는 객체만 전달해주면 된다. 또한 사과 샌드위치 가게와 샐러드 가게..
형상 관리란? • 소프트 웨어의 개발 과정에서 소프트 웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동이다. • 소프트 웨어 개발 프로세스에서 코드, 문서, 구성 요소등의 변경을 체계적으로 관리하고 추적하는 프로세스이다. • 버전 관리 시스템(VCS, Version Control System)을 사용하여 이루어 진다.(Git, CVS, Subversion 등) • 소프트웨어 소스 코드 뿐아니라 개발 환경, 빌드 구조 등 전반적인 내역에 대한 관리 체계를 정의하고 있다. 장점 • 여러 개발자가 동시에 작업하고 변경사항을 통합할 수 있어 협업이 용이하다. • 변경 사항의 이력을 추적할수 있어 특정 시점으로 돌아가는 이력 추적을 할수 있다. • 변경 사항을 안전하게 저장하고 필요할 때 이전 상태로 되돌릴 ..
Windows 기본 명령 명령 프롬프트(Command)창에 명령어를 입력하여 작업을 수행합니다. 윈도우명령어는 대소문자 구분이 없다. 명령어 기능 dir 현재 디렉터리의 파일 목록을 표시한다. dir /p : 현재 디렉터리의 파일 목록을 한 화면 단위로 표시한다. dir /w : 현재 디렉터리의 파일목록을 가로로 나열하여 표시한다. dir /o : 파일 목록을 정렬하여 보여준다.(d - 날짜, e - 확장자, n - 파일이름, s - 파일 크기) dir /s : 해당 디렉토리 내용과 하위 디렉토리의 정보까지 표시한다. dir /a : 지정한 속성이 설정된 파일 목록을 표시한다. [속성] • d - 디렉터리 • r - 읽기 전용 속성 • h - 숨김 파일 • a - 저장 / 백업 속성 • s - 시스템 파..
NaverLoginApi.java @Component public class NaverLoginApi extends DefaultApi20 { protected NaverLoginApi(){ } private static class InstanceHolder{ private static final NaverLoginApi INSTANCE = new NaverLoginApi(); } public static NaverLoginApi instance(){ return InstanceHolder.INSTANCE; } @Override public String getAccessTokenEndpoint() { return "https://nid.naver.com/oauth2.0/token?grant_type=au..
NaverLoginBO.java NaverLoginBO는 네이버 로그인(OAuth2.0)을 구현하는 Spring 웹 애플리케이션에서 사용되는 NaverLoginBO클래스를 정의한것이다. 이 클래스는 네이버 로그인 API와 상호작용하며 사용자의 인증, 액세스 토큰 발급, 사용자 프로필 정보 가져오기 등의 작업을 수행한다. 네이버 로그인을 구현할 때 필요한 설정값 // 네이버 API를 사용하기 위한 클라이언트 시크릿(CLIENT_SECRET)을 저장하는 필드. private String CLIENT_SECRET = "ㅁㅁㅁㅁㅁㅁㅁ"; // 네이버 API를 사용하기 위한 클라이언트 아이디(CLIENT_ID)를 저장하는 필드. private String CLIENT_ID = "ㅁㅁㅁㅁㅁㅁㅁㅁㅁ"; /* 네이버 ..