안녕하세요🖐 오늘은 제가 토이프로젝트 시작에 앞서, 어떻게 패키지를 구성하고, 파일을 관리할지 고민을 하던 중에 스프링 계층 구조에 대해서 알게되어서 공부하게 되었습니다. 그 내용을 포스팅 해보겠습니다. 저는 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 라는 책을 보며, 스프링 계층구조에 대하여 자세히 알게되었습니다. 위 사진이 대표적인 스프링의 계층 구조라고 합니다. 각각의 계층은 계층마다 독립적으로 분리하여 구현하는 것이 가능해야하고, 각 계층에서 담당해야 할 기능들이 있다. Web Layer(= Presentation Layer) 우리가 흔히 사용하는 Controller와 View 영역입니다. 스프링을 사용하면서 MVC패턴을 들어보셨을 것이라고 생각합니다. 그 중에서 View와 Controlle..
안녕하세요🖐 오늘은 스프링부트에서 의존성 주입에 대하여 알아볼 것 입니다. 스프링에서 중요한 개념인 Spring Core 관련된 내용은 꼭 알고서 개발을 시작해야 합니다. 대표적으로 POJO, AOP, DI 등 중요 개념들이 있습니다. 그 중에서 오늘은 DI에 대하여 알아보겠습니다. 의존성 주입은 스프링 을 사용하는 백엔드 개발자라고 하면은 개발시 자주 사용하고 있을 것 입니다. 저도 개발을 하면서 객체에 의존성 주입을 하는 상황이 자주 있습니다. 항상 궁금했습니다. 어떻게 이 방식으로 Bean에 의존성이 주입이 되고, 내가 원하는 객체에서 메소드를 사용하고 또 어떠한 방법들이 있을까? 그래서 이번 기회에 의존성주입(Dependency Injection) 에 대하여 자세하게 알아보았습니다. 모든 글은 W..
안녕하세요🖐 오늘은 스프링부트 환경에서 스프링 시큐리티를 활용한 로그인&로그아웃을 구현해보겠습니다. 스프링 시큐리티는 내용이 정말 많은 것 같아요😂 그만큼 공부할 부분이 많고, 활용범위가 넓다는 뜻입니다. 그만큼 한번 잘 공부해두면 두고두고 잘 사용할 수 있습니다. 스프링 시큐리티는 방대한 프레임워크이다. 따라서 스프링 시큐리티가 내부적으로 어떻게 동작하는지 알기 위해서는 스프링 시큐리티에 대해서 자세히 공부해야 한다. (스프링 시큐리티는 책 1권 분량으로 나올만큼 방대한 프레임워크이다. 실제로 스프링 시큐리티에 대한 책은 많이 출판되었다.) 이 책은 스프링 시큐리티 자체에 대한 내용보다는 활용적인 측면에 대해서만 다룰 것이다. 하지만 개략적인 개념 설명을 추가했으니 이해에 도움이 되기를 바란다. 기능구..
오늘은 JPA를 활용하여 게시판을 페이징 해보도록 하겠습니다. 1) 서론1-1) 페이징을 하는 이유 여러분들은 페이징을 왜 해야하는가에 대해서 생각해본적이 있나요❓컴퓨터 공학을 전공한 분이라면 페이징이라고 하면 두가지를 떠올릴 수 있습니다. 1) 게시판 같은, 웹 페이지에서 페이지가 넘어가는 페이징2) 가상메모리 관리 기술인 페이징 두가지를 생각할 수 있습니다.여기서 제가 설명할 것은 1번인 웹 페이지에서 페이지를 이동시키는 페이징을 진행 해보도록 할 것 입니다. 📢 결과적으로 제가 페이징을 하면서 느꼈던 것을 바탕으로 페이징을 필요성 대해서 적어보겠습니다.1) 사용자 경험 향상페이징을 하지 않으면 모든 글들이 한번에 나열되게됩니다. 글이 200개 300개 라면은 사..
스프링부트가 무엇인지에 대한 글을 한번 적어보겠습니다. 1) 내가 생각하는 스프링부트 ❓ 스프링 프레임워크를 써본사람은 스프링의 명확한 단점을 알 거라고 생각합니다. 바로 기존 스프링은, 서버 설정 및 여러 세팅을 귀찮게 프로젝트 생성시 매번 개발자가 직접 해줘야 합니다ㅠㅠ 그러나 스프링부트는 , 스프링을 쓸 때하는 이런 세팅을 할 필요가 없죠 스프링부트는 우리가 개발하는데 있어 더 편한 환경을 제공합니다. 1️⃣ 톰캣 서버를 내장하고 있다. 기존 스프링은, WAS를 내장하고 있지않아, 우리가 직접 WAS인 아파치 톰캣을 설정을 해줘야 했습니다 그러나 스프링부트는 직접 내장하고 있어 우리가 따로 서버를 설정할 필요가 없습니다. 2️⃣ 기존 스프링보다 설정이 쉽다 3️⃣ 기본적인 보안에 좋다 4️⃣ 스프링..
Java 언어 에서의 멀티 스레드Java에서의 Thread 와 Spring에서의 Thread에는 차이가 있다. Java자바에서 멀티 스레딩은 java.lang.Thread 클래스를 사용하여 구현된다. Thread 클래스를 상속받거나 Runnable 인터페이스를 구현하여 스레드를 생성하고 실행할 수 있는데, 스레드의 우선순위 및 동기화 등을 수동으로 관리할 수 있다.Spring스프링은 자바의 Thread 클래스를 직접 사용하지 않고, 스레드 풀(스레드를 미리 여러 개 만들어 둔 것)을 사용하여 멀티 스레딩을 지원한다. 스프링에서는 TaskExecutor 인터페이스를 사용하여 스레드 풀을 생성하고 사용할 수 있으며, 해당 인터페이스를 구현하여 직접 스레드 풀을 관리할 수도 있다. 또한, @Async 어노테이..
사전 작업 애플리케이션 등록 주소 : https://developers.kakao.com/console/app 에서 카카오 애플리케이션 등록을 한다 1-1) 카카오 로그인 활성화 (필수❗) → off 상태면 시작도 안됌.. 1-2) Redirect URI 설정 이 주소는 컨트롤러에서 맵핑하는 주소를 꼭 써야한다. ( 무조건‼‼) 1-3) 동의항목 설정 본인이 카카오 로그인시 가져올 정보를 선택하는 곳이다. 저는 테스트 용으로 한거라 아주 간단한 정보만 가져올수있고, 심사를 통해서 통과해야지 카카오에 등록된, 여러정보를 가져 올 수 있습니다… 1-4) 플랫폼 등록 플랫폼 등록을 해줍니다. 웹 도메인은 기본 로컬 주소를 등록 해줍니다. 이제 진짜 코드로 넘어가 보겠습니다. #2 TEST 💡 스프링부트 카카오..
TODO : 검색 로직, 대 댓글 만들기(231107) 개발 환경 : 인텔리제이 --> SpringbootMybatisMini 폼만 작성한 코드를 작성해서 적어두겠습니다 addform.jsp (댓글 등록폼) ; 0}"> ${no} ${dto.subject} ${dto.name} ${dto.readcount} ${dto.likes} 이전 ${pp } ${pp } 다음 content.jsp (댓글 출력폼) ${dto.subject} ${dto.name}(${dto.id}) 조회수 : ${dto.readcount} ${dto.content} 좋아요 ${dto.likes} 답글 수정 삭제 목록 글쓰기 이상으로 답변형 게시판 끝 입니다.