본문 바로가기

전체 글

(730)
[그리디 구현 예제] 그리디는, 가장 최적의 해를 찾는 알고리즘이다. 우선 가장 쉬운 예제로 한번 테스트해보자 특정 금액 1260 원을 받았을때, 동전 거스름돈의 최소 개수를 구하는 로직이다. 그리드 관련 알고리즘은, 가장 큰 범위의 탐색 및 로직을 먹이는 것이다. 그다음 그리드 문제 처음에, %4가 0 일떄를 체크해서, 가장 나누기를 우선적으로 수행하면 된다. 해당 완전탐색으로, 풀어버리면된다. 저런문제가 나오면 완전탐색을 하라고 하는거니까.. 그냥 완전 탐색하면된다. import java.util.*; import java.lang.*; class main2 { public static void main(String[] args) { //스캐너 Scanner sc = new Scanner(System.in); //시간 입..
[스프링 부트] mysql 설정 및 , spring security 기본 설정 우선 스프링부트 관련 테이블을 생성했다. 제일 기본적으로 쓸것같은, user, userrole,role이렇게 했다. Spring security 관련되서 인증, 사용자 관련되서 테이블을 생성했다. 제일 쓸것같은 테이블로, 컬럼을 대충 생성했고, 필요한건 추후에 수정 및 생성 예정이다. 거의 기본 세팅이긴하지만... 추후에 좀 파봐야겠다.... 스프링 공식 예제 기반으로 다듬고, 커스터마이징을 해야겠다는 생각이들었다. 다음에 스프링 시큐리티 관련 자세히 소스별 포스팅을 해야겠다
Redis 기초 개념 및 공부 Redis라는 것이 무엇일까. 쓰고는 있는데 정확히 어떤 것들이 좋은지, 나쁜지 이걸 진짜 알아야된다. 특정 기술을 쓸때, 이 기술에 대한 장단점을 모르고 쓰다보면 그리고 그 쓰임이 쌓이다 보면, 굉장히 성능에 대한 저하들이 생겨나게된다. 우선 redis 는 remote dictiionary server이다. 이름처럼 캐시이고, 많은 장점들이 있다. 1. 처리속도가 빠르다. 2. 리스트, 배열 형식의 데이터 처리에 특화 3. 메모리 활용하면서, 영속적인 데이터 보존 가능 (메모리를 사용하면 속도는 빠르지만, 영속적인 데이터 보존이 불가했었는데, 이러한 것들을 전부 커버업한다/) 4. 여러대의 서버 구성 하둡이나 빅데이터 처리 기 같이 master-slave 형태의 구성으로 한다. 또한 emecached ..
JPA란 무엇일까???? JPA에 대해서 많이들 언급하고있다 이직을 하거나, 공부를 하거나 등등 다양하게 스프링 관련 개발을 하게 되면 듣게 되는 용어이다. JPA대충감은 오지만, 확실히 모르면 확실히 알고가자 1. JPA 란 무엇일까 JPA란 흔히 , SQL과, 자바단을 묶어주는 , 객체 관계 매핑의 가장 표준적인 기술이다. 우리가 JAVA에서 객체를 넘겨주고, sql에서는 이 전달 받은 객체를 받아서, 매핑 해서 파라미터를 활용하여 insert나 select를 하게 된다. 2. JPA는 그래서 뭐임? 어케 쓰는거임?? JPA는 개발자가 사용하는 라이브러리가 아니다. 이렇게 애플리케이션 단과 JDBC 사이에 있기 떄문에, DB와 통신할때 객체를 매핑해주는 api라고 이해하면된다. 3. 그러면 JPA를 왜 사용해야할까???뭐가 ..
제네릭 사용법 예제 쉽게 정리 1. 제네렉은, 특정 클래스나 함수의 불필요한 타입변형을 막아준다. 대부분 파라미터나, return에 대해서, 특정 타입에 대한 선언을 해주는데, 특정 타입에 대한 정의를 하면 불편한, 공통의 소스들에 대해서는, 이런 제네릭 사용방법이 아주 핵심이다. 바로 쉬운 예를 하나 들어본다. Student라는 클래스이고, 이 하위에 함수를 ShowType으로 하고, 해당 Student 클래스를 생성할때, 해당 파라미터로 생성자를 만든다. 이떄, showtype을 하면, 이떄 생성한 파라미터에 대한 classtype을 보여주게 만들었다. 이렇게 하면, integer든,string이던, 한가지 소스에 student 를 선언할수있다. 2. 와일드 카드 showPrint 메소드를 보자, 해당 메소드에서는 와일드 카드를 ..
[자료구조 공부] Hashset 사용하기 자료구조에 대한 걸 공부해야겠다는 필요성을 느꼈다. 왜냐하면, 너무 쓰던 자료구조만 쓴다. 예를 들면, ArrayList 말고 다른 자료구조를 쓰면, 더 효율적인데, ArrayList나 Map같이 그냥 쓰던것만 쓰거나.....등등 무튼 그래서, 하루에 한가지 자료구조를 파야겠다고 생각했고, 오늘이 그 첫번째, HashSet이다. 우선 선언 및 기본 print 간단하게, Hashset에 A라는걸 add하고,print 한다. add방식은 arrayList와 동일하다, index 로 탐색해야하는 것도 같다. 다만, 다른점은 !! 중복에 대한 자동 체크를 해준다는 것이다. 바로 이해되는 예제를 구현해봤다. add로 A를 두번 add해도 자동으로, A는 한번밖에 담기지 않는다. 찾아보니 hashset은 다음과 같..
DispatcherServlet이란? 스프링에서 Log로 보면 제일 많이 보이는 DispatcherServlet 이 존재한다. 해당 서블릿은 뭐하는 녀석일까???? 1. FrontController 해당 스프링에서 제일 앞단에서 받는 컨트롤러이다. 사용자가 지정해놓은 컨트롤러 보다 먼저받아서, Controller로 뿌려준다. 이 계층으로 응답을 받고 처리를 진행하는데, 쉽게 말해서 dispatcher servlet 이 받고, filter intercepter controller라고 생각하면 된다. 필터는 보안이나, 인코딩에 대한 것이라서, 내부 Servlet 전에 막아준다. 그다음에는 intercepter 인데, Controller 수행전, 수행후 특정 패턴 등에 적용이 가능하다. DispatcherServlet 은 Controller 의 ..
[Spring boot] Spring security 관련 패턴 적용 저번에 pom.xml에 Maven 형식으로 starter-security 만 추가하니까 모든 페이지에서 admin lock이 걸리고, 인증 페이지로 redirect 되는걸 알수있었다. 하여, 패턴적용하여, 어떤 페이지에서는 인증을 푸는 방법을 구현하였다. 우선 permitAll()을 하고, 특정 페이지에서 하나씩 어떻게 풀어나가는지 포스팅 및 정리 공부를 할 예정이다. 우선 com.date.blog 하위 패키지에 security 패키지를 추가, SecurityConfig 라는 class파일을 생성하였다. 하여 해당 소스 처럼, 해당 Config 파일은 WebsecurityConfigurerAdapter를 상속받아서, configure을 적용한다. web을 파라미터로 받는 경우에는 내부 프로젝트이 소스 접..