전체 글

웹개발
Web/Spring Boot

[Project] 쇼핑몰 프로젝트 - 5 UserDetails, UserDetailsService

UserDetails Member Entity 추가 @Entity @Getter @NoArgsConstructor public class Member implements UserDetails { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(unique = true) private String email; private String name; private String password; private String address; private String role; @Builder public Member(String email, String name, String password, String addres..

Web/Spring Boot

[Project] 쇼핑몰 프로젝트 - 4 Security 설정 & 로그인

build.gradle implementation 'org.springframework.boot:spring-boot-starter-security' 시큐리티 종속성 추가 SecurityConfig 작성 @Configuration @EnableWebSecurity public class SecurityConfig{ @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception{ http.csrf().disable().cors().disable() .authorizeHttpRequests() .antMatchers("/", "/auth/login", "/auth/signup").permitAll() .anyRequest()...

Web/Spring Boot

[Project] 쇼핑몰 프로젝트 - 3 회원가입 구현

MemberReposirory 작성 public interface MemberRepository extends JpaRepository{ } AuthController 작성 @Controller @RequestMapping("/auth") public class AuthController { @GetMapping("/signup") public String signup(){ return "auth/signup"; } } /auth/signup으로 get요청시 회원가입 페이지 리턴 signup.html 회원가입 이름 이메일 비밀번호 주소 역할: 일반회원 판매자 가입하기 bootstarp5와 thymeleaf를 이용해 구현했다. 가입하기 버튼을 클릭하면 /auth/signup으로 post요청한다. Membe..

Web/Spring Boot

[Project] 쇼핑몰 프로젝트 - 2 Member Entity 작성

Member Entity 작성 @Entity @Getter @NoArgsConstructor public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(unique = true) private String email; private String name; private String password; private String address; private String role; @Builder public Member(String email, String name, String password, String address, String role) { this.email = emai..

Web/Spring Boot

[Project] 쇼핑몰 프로젝트 - 1 개발환경설정

버전 Java - 11 Spring boot - 2.7.13 Gradle - 8.1.1 DB - mysql spring security, jpa, thymeleaf, bootstrap5 dependencies dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-star..

Coding/Java

[JAVA] Optional<T> 개념

Optional란? Optional 클래스는 ''타입의 객체를 포장해주는 wrapper calss이다. Java 8부터 도입되었으며 NPE(NullPointerExecption)이 발생하지않도록 도와준다. public final class Optional { private final T value; ... } Optiona클래스는 위와같이 value값을 저장하기떄문에 NPE가 발생하지않고 만약 null값인데 접근하려한다면 NoSuchElementException이 발생한다. 사용법 값이 null인경우 Optional opt = Optional.empty(); System.out.println(opt); // Optional.empty System.out.println(opt.isPresent()); //..

Web/Spring Boot

[Spring Security] 스프링 시큐리티 아키텍쳐

스프링 시큐리티란 Spring Security는 일반적인 공격에 대한 인증, 권한 부여 및 보호 기능을 제공하는 프레임워크이다. 명령형, 선언형 애플리케이션을 지원한다. 인증과 인가 Spring Security에서는 인증과 인가를 제공한다. 쉽게 풀어서 설명하자면 - 인증(Authentication) : 로그인 - 인가(Authorization) : 권한 웹사이트에 회원가입하고 로그인하는것을 인증(Authentication)이라고하고 로그인하고 남이 쓴 글을 수정, 삭제 할수없는것이 인가(Authorization)이라고 한다. Filters Security의 Servlet지원은 Servlet Filters를 기반으로한다. 위의 이미지는 단일 HTTP요청에 대한 일반적인 계층이다. DelegatingFil..

Web/Spring Boot

[Jpa] 연관관계 매핑 - 1 @ManyToOne, @OneToMany

연관관계 매핑 방향 : 단방향 : 두개의 관계가 있을때 한 쪽만 참조하는것 양방향 : 두개의 관계가 있을때 두개 서로 참조하는것 다중성 : 다대일(N:1) 일대다(1:N) 일대일(1:1) 다대다(N:M) 연관관계 주인 : 겍체를 양방향 연관관계로 만들면 주인을 정해주어야 한다. @ManyToOne 단방향 다대일(N:1) 매핑할때 쓰이는 어노테이션이다. 하나의 팀에 여러명의 회원이 포함되어있다고 예를 들어보면 아래와 같이 작성할수있다. Member Entity @Entity public class Member{ @Id @Colomn(name = "member_id") private Long id; private String name; @ManyToOne @JoinColumn(name = "team_id")..

토이프로젝트

군대 전역일 계산기

Army Date Calculator Github 전역일 계산기 인생 첫 프로젝트로 프로젝트를 끝마친 지금을 기준으로 일병 4호봉일때이다. 군 복무중 어느날 시간을 낭비하고 있다는 생각이 문득 들어서 무작정 시작하게되었다. 지금 군인 신분이기도하고 전역을 몹시바라고 있기 때문에 전역일 계산기를 만들어 보고싶었다. 처음은 Spring을 사용해 진행하려고 했었는데 빨리 결과물을 보고 싶은 생각에 그나마 쉬워 보이는 node.js를 이용해서 프로젝트를 진행했다. 기간은 약 2주정도 소요된것 같다. 주요 기능 전역일 계산 실시간 채팅 게시판 CRUD - 게시판 리스트 - 게시판 상세페이지 게시판 수정페이지 삭제페이지는 따로 없음 프로젝트를 마치고 느낀점 처음에는 node.js로 서버를 여는 방법만 알고 시작하게..

Coding/Crawling

파이썬 나만의 지니뮤직 차트순위 크롤링하기 #4 추가

이전에 만들었던 지니뮤직 크롤러는 1위부터 50위까지 노래 제목만 출력이됐었다 지금 오라클을 이용해서 크롤링한 정보를 데이터베이스에 저장하게하고 싶어서 여러개의 정보가 같이 크롤링 되었으면 좋겠다고 생각했다 그래서 바로 추가해보았다 import requests from bs4 import BeautifulSoup headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'} url = 'https://www.genie.co.kr/chart/top200' resp = requests.get(url, headers =..

h0ch1
Junyoung.dev