안녕하세요🖐 오늘은 스프링부트 환경에서 스프링 시큐리티를 활용한 로그인&로그아웃을 구현해보겠습니다. 스프링 시큐리티는 내용이 정말 많은 것 같아요😂 그만큼 공부할 부분이 많고, 활용범위가 넓다는 뜻입니다. 그만큼 한번 잘 공부해두면 두고두고 잘 사용할 수 있습니다. 스프링 시큐리티는 방대한 프레임워크이다. 따라서 스프링 시큐리티가 내부적으로 어떻게 동작하는지 알기 위해서는 스프링 시큐리티에 대해서 자세히 공부해야 한다. (스프링 시큐리티는 책 1권 분량으로 나올만큼 방대한 프레임워크이다. 실제로 스프링 시큐리티에 대한 책은 많이 출판되었다.) 이 책은 스프링 시큐리티 자체에 대한 내용보다는 활용적인 측면에 대해서만 다룰 것이다. 하지만 개략적인 개념 설명을 추가했으니 이해에 도움이 되기를 바란다. 기능구..
오늘은 JPA를 활용하여 게시판을 페이징 해보도록 하겠습니다. 1) 서론1-1) 페이징을 하는 이유 여러분들은 페이징을 왜 해야하는가에 대해서 생각해본적이 있나요❓컴퓨터 공학을 전공한 분이라면 페이징이라고 하면 두가지를 떠올릴 수 있습니다. 1) 게시판 같은, 웹 페이지에서 페이지가 넘어가는 페이징2) 가상메모리 관리 기술인 페이징 두가지를 생각할 수 있습니다.여기서 제가 설명할 것은 1번인 웹 페이지에서 페이지를 이동시키는 페이징을 진행 해보도록 할 것 입니다. 📢 결과적으로 제가 페이징을 하면서 느꼈던 것을 바탕으로 페이징을 필요성 대해서 적어보겠습니다.1) 사용자 경험 향상페이징을 하지 않으면 모든 글들이 한번에 나열되게됩니다. 글이 200개 300개 라면은 사..
JPA에서 자주 사용하는 메소드를 정리 해보도록 하겠습니다. 메소드 정리 및 예시 또한 적어보겠습니다. CRUD 1) findAll() 위 메소드는 DB 데이터를 조회(select)할 때 사용이 됩니다 @Test void SelectTest2() { List allList = this.questionRepository.findAll(); assertEquals(2, allList.size()); Question q = allList.get(0); assertEquals("안녕?",q.getSubject()); } 우리는 총 2건의 데이터를 insert했기 때문에 데이터의 사이즈는 2가 되어야 합니다. 데이터 사이즈가 2인지 확인하기 위해 JUnit의 assertEquals 메서드를 사용했습니다. asse..
JPA에 대한 간단한 포스팅을 해보겠습니다. 공부를 해서 아는 내용이 추가될수록 이 글에도 추가적으로 글을 수정하도록 하겠습니다. JPA란? JPA를 사용하기 위해서는 기본적인 데이터베이스 쿼리를 사용할 수 있으면 좋습니다. 기본적으로 DB를 핸들링 하기 위해서는, SQL쿼리를 통해서 할 수 있습니다. 그러나 ORM(object relational mapping)을 사용하면은 자바 문법을 이용하여 DB를 핸들링 할 수 있습니다. 즉 ORM을 이용하면 개발자가 쿼리를 작성하지 않고, DB의 데이터를 핸들링할 수 있다는 것이다. - ORM 기존 SQL을 바탕으로 ORM을 활용할 수 가 있습니다. 예를들어 num id pass email 1 abc 1234 abc@gmail.com 2 def 5678 def@..
스프링부트가 무엇인지에 대한 글을 한번 적어보겠습니다. 1) 내가 생각하는 스프링부트 ❓ 스프링 프레임워크를 써본사람은 스프링의 명확한 단점을 알 거라고 생각합니다. 바로 기존 스프링은, 서버 설정 및 여러 세팅을 귀찮게 프로젝트 생성시 매번 개발자가 직접 해줘야 합니다ㅠㅠ 그러나 스프링부트는 , 스프링을 쓸 때하는 이런 세팅을 할 필요가 없죠 스프링부트는 우리가 개발하는데 있어 더 편한 환경을 제공합니다. 1️⃣ 톰캣 서버를 내장하고 있다. 기존 스프링은, WAS를 내장하고 있지않아, 우리가 직접 WAS인 아파치 톰캣을 설정을 해줘야 했습니다 그러나 스프링부트는 직접 내장하고 있어 우리가 따로 서버를 설정할 필요가 없습니다. 2️⃣ 기존 스프링보다 설정이 쉽다 3️⃣ 기본적인 보안에 좋다 4️⃣ 스프링..
백준 2884 알람시계 1) 문제 설명 1) 입력 2) 출력 문제설명은 여기까지하고, 문제 요구 조건 및 풀이를 해보겠습니다. 문제 요구조건 1) 변수 설정 2) 입력 받기 (Sacnner사용) => 추후에 BufferReader로 바꾸기 3) 조건 주기 분이 45분 보다 작을시 시간을 -1 한다 시간이 0보다 작을 시 23으로 바꾼다. 코드 적용 public static void main(String[] args) { Scanner sc = new Scanner(System.in); int hour = sc.nextInt(); int min = sc.nextInt(); if(min < 45) { hour --; // 45보다 작을시 시간을 -1 min = 60-(45-min); if(hour < 0) ..
Java 언어 에서의 멀티 스레드Java에서의 Thread 와 Spring에서의 Thread에는 차이가 있다. Java자바에서 멀티 스레딩은 java.lang.Thread 클래스를 사용하여 구현된다. Thread 클래스를 상속받거나 Runnable 인터페이스를 구현하여 스레드를 생성하고 실행할 수 있는데, 스레드의 우선순위 및 동기화 등을 수동으로 관리할 수 있다.Spring스프링은 자바의 Thread 클래스를 직접 사용하지 않고, 스레드 풀(스레드를 미리 여러 개 만들어 둔 것)을 사용하여 멀티 스레딩을 지원한다. 스프링에서는 TaskExecutor 인터페이스를 사용하여 스레드 풀을 생성하고 사용할 수 있으며, 해당 인터페이스를 구현하여 직접 스레드 풀을 관리할 수도 있다. 또한, @Async 어노테이..
혼자 공부하는 컴퓨터 구조+운영체제 스레드 부분을 공부하면서 정리한 내용을 포스팅 해보겠습니다. 🖐 스레드란? => 프로세스를 구성하는 실행 흐름의 단위 🖐 멀티 스레드란? => 한 프로세스안에서 한개 이상의 스레드를 가지는 것 우리는 평소에도 여러 프로세스를 알게 모르게 사용하고 있습니다. 1️⃣ 백그라운드 프로세스2️⃣ 포그라운드 프로세스 그 중에서도 우리가 자주 사용하는 프로세스라고 함은 포그라운 프로세스에서대표적으로 웹 브라우저(크롬,엣지)를 예시로 들 수 있습니다. -> 그리고 웹 브라우저라는 프로세스 안에는 ( 화면 출력 스레드, 입력 스레드, 검색 스레드 등등 여러가지 스레드가 있습니다) 💡 프로세스가 존재해야 스레드가 존재한다 → 즉 스레드는 프로세스 실행 단위 이다. 프로..