전체 글

lightpick은 달력에서 날짜를 선택할 수 있는 라이브러리입니다. 보통은 달력 라이브러리로 datepicker를 많이 사용하는데 저는 많은 기능이 필요하지 않아서 lightpick을 사용했습니다. 현재는 lightpick이 종료되고 easypick으로 변경된 것 같은데 저는 기록용으로 남겨놓겠습니다.ㅎㅎ? 아마 lightpick은 날짜 관련 라이브러리 moment를 사용하는데 더이상 moment가 업데이트 되지 않기 때문에 프로젝트를 종료한 것 같습니다. 뇌피셜입니다. 들어가보니 lightpick과 사용방법은 비슷한 것 같습니다. https://easepick.com/ easepick easepick.com 제가 프로젝트에서 구현하려고 했던 기능은 예약 날짜 범위를 선택하는 기능과 이미 예약된 날의 ..
· 코딩/JPA
출처 : https://www.inflearn.com/course/ORM-JPA-Basic 수정중 JPA란? JPA는 자바에서 제공하는 ORM의 표준 인터페이스로서 객체와 데이터베이스 간의 매핑을 정의하고 편리하게 사용할 수 있도록 도와주는 프레임워크입니다. JPA는 관계형 데이터베이스와 자바 객체 간의 매핑을 쉽게 할 수 있도록 도와줍니다. 여러 ORM 프레임워크 중 하나로, Hibernate, EclipseLink, OpenJPA 등이 JPA의 대표적인 라이브러리입니다. ORM (Object-Relational Mapping) 객체를 통해 데이터베이스를 조작할 수 있도록 도와주는 프로그래밍 기술입니다. 객체는 메모리에서 사용되는 데이터의 집합이고, 관계형 데이터베이스는 디스크 상에 저장되는 테이블 형..
참고 블로그 https://gksdudrb922.tistory.com/217 Spring Security에 jwt를 접목하여 프로젝트에 적용해보았습니다. JWT(Json Web Token)란? JWT는 정보를 JSON 형식으로 표현하며, 디지털 서명 또는 메시지 인증 코드를 사용하여 정보의 무결성을 보장합니다. 주로 사용자 인증 및 권한 부여를 관리하는데 사용됩니다. JWT를 사용하는 이유 HTTP는 기본적으로 무상태성(state-less)를 지향합니다. 무상태성이란 서버가 클라이언트의 정보를 갖고있지 않은 것ㅇ르 말합니다. 세션 기반 인증 방식은 사용자의 로그인 정보를 서버 측에서 관리하기 때문에 로그인 시도 횟수가 증가하면 서버에 부하가 발생할 수 있습니다. JWT 토큰을 사용하면 사용자의 로그인 정..
프로젝트 설정을 xml로 하고 있었는데 spring security + jwt 토큰을 적용하면서 java 방식으로 변경하였다. 설정 파일을 모두 변경하고 실행했는데 오류가 발생했다. ㅎㅅㅎ;;🚨 org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'class path reso..
Spring Security란? Spring Security는 Java 기반 애플리케이션에서 보안을 쉽게 구현하고 관리할 수 있도록 도와줍니다. 개발자는 애플리케이션의 보안에 더 많은 신경을 쓰지 않고 안전하게 애플리케이션을 개발할 수 있습니다. Spring Security의 기본적인 필터 실행 순서 SecurityContextPersistenceFilter: 현재 사용자의 보안 컨텍스트를 로드 및 저장하는 필터입니다. 세션 또는 SecurityContextHolder를 통해 현재 사용자의 보안 컨텍스트를 관리합니다. ConcurrentSessionFilter: 동시 세션 제어를 수행하는 필터입니다. 세션 고유 키를 사용하여 여러 동시 로그인을 제한하거나 처리합니다. LogoutFilter: 로그아웃 처..
JSP Controller @RequestMapping(value="/naver_oauth", method=RequestMethod.GET) public String naverOauth(HttpServletResponse response) { SecureRandom random = new SecureRandom(); String state = new BigInteger(130, random).toString(32); // 네이버 로그인 연동 URL 생성 StringBuffer url = new StringBuffer(); url.append("https://nid.naver.com/oauth2.0/authorize?"); url.append("client_id=***본인의 client_id***"); u..
· CS
정보처리산업기사 실기 시험 정보 및 합격 기준 실기는 필기와 다르게 cbt 시험이 아니라 필답형 시험이다. 필기시험에 합격한 후, 필기시험 합격자 발표일로부터 2년 동안 실기 시험에 응시할 수 있다. 2년이 지나면 필기시험을 다시 봐야 한다. 합격 기준은 60 이상, 20문제이고 과락은 없다. 응용SW기초기술 활용 화면 구현 애플리케이션 테스트 수행 애플리케이션 배포 프로그래밍 언어 활용 UI 테스트 SQL 활용 그리고 시험 접수는 무조건 대기 타고 있다가 접수 열리자마자 하는 걸 추천! 늦게 하면 아주 먼 시험장에 가서 시험을 보게 될 수도 있다. 정보처리산업기사 실기 공부 기간 및 방법 실기 공부도 시나공 책으로 했고 한 달 동안 준비했다. 실기 시험은 주관식인데 나는 암기에 매우 자신이 없었다,,,..
참고 블로그 : https://cdi3124.tistory.com/77 [Spring/maven] 프로젝트 회고4. 카카오 로그인 API 매번 복잡하고 까다로운 회원가입 절차는 아무리 우리의 개인정보를 보호해준다고 해도 귀찮다. 이미 가입한 나의 정보를 가지고 다른 사이트에서 이용할 수 없을까? 이러한 이유 때문에 거의 cdi3124.tistory.com 이번 프로젝트에는 저번에 못했던 카카오 소셜 로그인을 구현해 보았습니다. 생각보다 어려웠습니다 ㅎㅎ;;;;;;; 다음에 쉽게 사용할 수 있도록 기록해 봅니다. ~~ 카카오 소셜로그인 절차 ~~ 우선 카카오 소셜 로그인 절차를 알아보겠습니다. 카카오에서 제공하는 문서에도 상세하게 나와있습니다. https://developers.kakao.com/docs/..
· CS
시험을 본지는 꽤 됐지만 경험을 기억하기 위해 블로그에 글을 써 본다. 정보처리산업기사 시험 정보 및 합격 기준 정보처리산업기사는 상시 시험이 없고 1년에 3회만 진행해서 한 번 떨어지면 타격이 크다. 과목은 정보시스템 기반 기술 프로그래밍 언어 활용 데이터베이스의 활용 으로 3과목이고 60문제, cbt 시험으로 치러져서 시험 보자마자 결과를 알 수 있다. 합격 기준은 평균 60점 이상, 과목당 40점 미만이면 과락이다. 정보처리산업기사 응시 계기 비전공자라서 다른 분들보다 CS 지식이 부족하기 때문에 공부한 게 가장 크다. 그리고 학점은행제에 학점 인정되는 자격증이고 조금이나마 취직에 도움이 될까 봐 공부했다.ㅎㅎ 어쨌든 공부하면 이득인 자격증이었음. 정보처리산업기사 응시 자격 1. 기능사 등급 이상의..
팀 프로젝트를 할 때 다른 팀원이 사용한 웹 에디터인데 UI가 깔끔하고 기능도 기본에 충실한 API라서 내 프로젝트에 적용하면서 사용법을 정리해보았다. 다른 CSS와 충돌하지 않게 lite 버전을 사용했다. 썸머노트 공식 홈페이지 https://summernote.org/ Summernote - Super Simple WYSIWYG editor Super Simple WYSIWYG Editor on Bootstrap Summernote is a JavaScript library that helps you create WYSIWYG editors online. summernote.org 1. 소스 다운로드 Getting started 탭에 들어가면 소스를 다운 받을 수 있다. 프로젝트 resources >..
블로그에 작성하진 않았지만 요즘엔 코딩 테스트를 열심히 하고 있다,,,, 알고리즘에 대해 1도 모르는 관계로 프로그래머스 0단계-1단계부터 꾸준히 하고 있는 중 드디어 200 문제를 풀어따 코딩테스트 입문 추천 문제 48프로 해결 코딩 기초 트레이닝은 84프로 ㅎㅅㅎ 이제 푸는 방법은 어느 정도 알 것 같은데 문법(?)을 틀려서 검색을 해야할 때가 있다 코드가 길어지면 뇌정지 오기도 하고 ㅎ;;; 기초부터 꾸준히 해서 나중에는 어려운 것도 척척 풀 수 있으면 좋겠다 제발~~~~
문제 설명 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다. 제한사항 s에는 둘 이상의 정수가 공백으로 구분되어 있습니다. 입출력 예 s return "1 2 3 4" "1 4" "-1 -2 -3 -4" "-4 -1" "-1 -1" "-1 -1" class Solution { public String solution(String s) { String[] str = s.split(" "); int max = Integer.parseInt(..
문제 설명 정수 배열 arr가 주어집니다. arr의 각 원소에 대해 값이 50보다 크거나 같은 짝수라면 2로 나누고, 50보다 작은 홀수라면 2를 곱하고 다시 1을 더합니다. 이러한 작업을 x번 반복한 결과인 배열을 arr(x)라고 표현했을 때, arr(x) = arr(x + 1)인 x가 항상 존재합니다. 이러한 x 중 가장 작은 값을 return 하는 solution 함수를 완성해 주세요. 단, 두 배열에 대한 "="는 두 배열의 크기가 서로 같으며, 같은 인덱스의 원소가 각각 서로 같음을 의미합니다. 제한사항 1 ≤ arr 의 길이 ≤ 1,000,000 1 ≤ arr 의 원소의 값 ≤ 100 입출력 예 arr result [1,2,3,100,99,98] 5 입출력 예 설명 입출력 예 #1 위 작업을 ..
문제 설명 정수가 있을 때, 짝수라면 반으로 나누고, 홀수라면 1을 뺀 뒤 반으로 나누면, 마지막엔 1이 됩니다. 예를 들어 10이 있다면 다음과 같은 과정으로 1이 됩니다. 10 / 2 = 5 (5 - 1) / 2 = 4 4 / 2 = 2 2 / 2 = 1 위와 같이 4번의 나누기 연산으로 1이 되었습니다. 정수들이 담긴 리스트 num_list가 주어질 때, num_list의 모든 원소를 1로 만들기 위해서 필요한 나누기 연산의 횟수를 return 하도록 solution 함수를 완성해주세요. 제한사항 3 ≤ num_list의 길이 ≤ 15 1 ≤ num_list의 원소 ≤ 30 입출력 예 num_list result [12, 4, 15, 1, 14] 11 입출력 예 설명 입출력 예 #1 12는 3번, ..
문제 설명 정수 배열 arr와 2차원 정수 배열 queries이 주어집니다. queries의 원소는 각각 하나의 query를 나타내며, [s,e] 꼴입니다. 각 query마다 순서대로 s ≤ i ≤ e 인 모든 i에 대해 arr[i]에 1을 더합니다. 위 규칙에 따라 queries를 처리한 이후의 arr를 return 하는 solution 함수를 완성해 주세요. 제한사항 1 ≤ arr의 길이 ≤ 1,000 0 ≤ arr의 원소 ≤ 1,000,000 1 ≤ queries의 길이 ≤ 1,000 0 ≤ s ≤ e
진리--
진리의 블로그