목록분류 전체보기 (444)
코딩항해기
중중프 , 중프에서 Model파트를 맡게 되어 전체적인 JSP 프로젝트 구조의 이해가 떨어질 것 같아 개인 프로젝트로 VC파트를 추가해 간단한 사이트를 진행해보기로 했다. 중프 팀플에 영향을 주지 않도록 간단하게 여유로운 계획으로 설계하여 프로젝트를 진행할 예정이며, 혼자 진행하는 프로젝트지만 최대한 각 파트를 구분해 팀플 하듯이 진행해보려고 한다. 일단 사전에 팀플이라면 팀 회의를 통해 정했을 기능, 각 파트끼리 약속된 값을 일부 엑셀에 정리했다.VC파트가 서로 어떤 값을 미리 전부 정해야할지 가늠이 되지 않아 일단 일부 값만 정리했다. [ 개인 프로젝트 진행 목적]1. JSP 웹 프로젝트 구조, 흐름 이해하기2. View 파트 연습하기3. Controller 파트 연습하기4. VC파트에서 사전에 정해..
[API] CKEditor5 샘플 코드 다운로드하기CKEditor 5 BuilderCreate and customize your online editor with CKEditor 5 Builder. Choose features, set up your editor, and see changes in real-time.ckeditor.com CKEditor5는 홈페이지에서 다양한 구성에 따라 샘플코드를 제공하고 있minibcake.tistory.com main.js에 들어가면 에디터 설정을 할 수 있는 부분이 있다.const editorConfig = { toolbar: {/*툴바 설정 부분*/ items: ['undo', 'redo', '|', 'bold', 'italic', '|', 'link'],/..
CKEditor 5 BuilderCreate and customize your online editor with CKEditor 5 Builder. Choose features, set up your editor, and see changes in real-time.ckeditor.com CKEditor5는 홈페이지에서 다양한 구성에 따라 샘플코드를 제공하고 있다. 먼저 상단의 주소로 들어가게 되면 어떤 종류의 CKEditor를 사용할지 선택할 수 있는 창이 나타난다. 원하는 방식을 선택하면 샘플 페이지가 나타나 어떤 방식으로 보여지고 작동하는지를 미리 테스트 해볼 수 있다.원하는 방식을 결정했다면 next를 누른다. 기능을 결정할 수 있는 페이지로 넘어가게 되는데, 이때 체크를 하면 해당 기능..
심각: Context initialized 이벤트를 [controller.common.SampleListener] 클래스의 인스턴스인 리스너에 전송하는 동안 예외 발생java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriver at controller.common.SampleListener.contextInitialized(SampleListener.java:32)(생략) ... 29 more 분명 셀레니움과 WebDriver 파일을 buildpath 했고 셀레니움 크롤링 테스트를 java에서 확인할 때는 오류가 발생하지 않았는데, 리스너에 적용시키고 서버로 실행시키려고 하니 해당 오류가 발생했다. 해결하는 법은 WEB-INF 하위에 lib 폴더에 직접 ..
Listener와 selenium4 동적 크롤링을 이용해 서버가 시작할 때 상품 DB를 확인하고 비어있다면 크롤링한 샘플 데이터를 추가할 수 있도록 하는 기능을 추가하려고 한다. 크롤링크롤링 기초는 이전 글을 참고 바란다. [API] JAVA - 동적크롤링 (셀레니움4 Selenium +WebDriverManager)정적크롤링하기 (jsoup) [API] JAVA - 정적 크롤링 (jsoup API / Eclipse)크롤링스크래핑웹페이지, 또는 웹사이트에서 데이터를 수집한다.크롤링수집한 데이터를 가공한다. (스크래핑과 세트이므로 스크minibcake.tistory.com 해당 방식은 스크롤을 한 번에 진행하는 방식이었는데, 해당 방식으로 똑같이 진행할 경우 이미지가 제대로 로딩되지 않고 지나가 이미지..
네이버 로그인도 개발자 문서에 내용과 오류 관련한 해결법이 잘 정리되어있는 편이다.다만 주의할 점은 어플리케이션을 등록할 때 콜백 URL가 반영이 느리거나 수정하면 잘 반영되지 않는 편인 것 같아 새로 개설할 때 제대로 적어야 이유없는 오류를 막을 수 있는 것으로 보인다. 사전에 콜백 URL, 도메인 등을 미리 정해두는 것이 좋다.(네이버는 포트번호 포함해서 적어야한다) API 신청하기https://developers.naver.com/products/login/api/api.md 네이버 로그인 - INTRO환영합니다 네이버 로그인의 올바른 적용방법을 알아볼까요? 네이버 로그인을 통해 신규 회원을 늘리고, 기존 회원은 간편하게 로그인하게 하려면 제대로 적용하는 것이 중요합니다! 이에 올바develope..
카카오 지도 api는 카카오 자체 설명이 자세하게 나와있다. 바로 사용가능한 예시 코드까지 작성해서 알려주고 있으므로 공식페이지를 읽어보는 것을 추천한다. 카카오 지도 api 설명 : https://apis.map.kakao.com 카카오 api 설명 찾아가기더보기1. web 선택하기 2. 시작하기 3. 가이드 읽기 카카오 개발자 사이트에서 세팅하기더보기1. 지도 선택하기 2. 회원가입하기 3. 상단의 내 어플리케이션 선택해서 새 앱 만들기 4. 만든 어플리케이션에 들어가서 [플랫폼] - web 플랫폼 등록하기(localhost:포트번호 형식 사용 시 포트번호까지 작성해야한다) 5. [앱 키] - javascript 키를 복사해온다. 기본 기능 외에도 다양한 기능을 코드와 함께 제공하고 있으므..
구글 로그인 시도 시 팝업까지는 뜨지만 팝업이 로딩되지 않고 빈 페이지로 남아있는 경우, 사용자 인증의 승인된 JavaScript 원본 URI의 주소가 문제다. 이 주소가 잘못되어 있다면 수정하면 되는데 여기서 첫 번째 URI처럼 포트번호를 적어뒀다면 제대로 실행되지 않는다.전의 구글 버전에서는 되는 것 같아보였는데, 신 버전에서는 지원하지 않는 모양이다... 두 번째 URI처럼 localhost까지만 적어두면 정상작동되는 것을 확인할 수 있다.
구글 로그인을 구현해보자.먼저 구글 로그인은 최근 업데이트로 인해 기존 소스들을 사용하기 어려우므로 최신 방법을 잘 찾아야한다. 해당 글은 24년 9월 기준으로 작성됐다.이번 글에서는 구글 로그인을 통해 회원정보를 받아오는 방식에 대해 정리할 예정이다. 준비하기먼저 구글 OAuth 2.0 프로젝트를 만들어줘야한다.구글 클라우드 플랫폼에서 프로젝트를 생성할 수 있다.https://console.cloud.google.com Google 클라우드 플랫폼로그인 Google 클라우드 플랫폼으로 이동accounts.google.com 클라우드 플랫폼에 들어가서 로그인을 하면 상단에 프로젝트를 고를 수 있는 부분이 있다.이 부분을 클릭하면 프로젝트 리스트가 나오며 새 프로젝트를 만들 수 있다. 새 프로젝트 만들기를..
StringBuilderString은 불변(immutable)객체로 String은 한 번 생성되면 변경될 수 없다. 즉, 연결연산자를 사용해 문자열을 연결하면 연결 할 때마다 기존의 String 객체는 가비지 컬렉터로 들어가고, 새로운 String 객체가 생성된다. 이러한 행위는 메모리를 많이 소모하게 된다. 이러한 점을 해결하기 위한 것이 StringBuilder로, StringBuilder는 변경 가능한 문자열을 만든다. StringBuilder의 연결은 새로운 객체를 생성하는 것이 아닌 기존 데이터에 연결하는 방식으로 속도도 빠르고 부하도 적다.긴 문자열을 더하거나, 자주 더할 때 사용하면 용이하다. (비슷한 종류로는 StringBuffer가 있다.) StringBuilder와 StringBuffe..