프로그래밍
-
스프링 시큐리티 요청 URI별 권한 처리할 때 문제상황 해결!프로그래밍/서버 프로그래밍 2019. 2. 19. 15:17
스프링 시큐리티 요청 URI별 권한 처리할 때 문제상황 해결! 스프링 시큐리티를 사용하는 프로젝트에서 /api/**는 authenticated()로 처리하고, /api/accounts로 들어오는 POST요청만 permitAll() 처리를 해줬는데 이게 실제 테스트코드에서 계속해서 실패하는 이슈가 있었다. 해당 코드는 @Override public void configure(HttpSecurity http) throws Exception { http.anonymous() .and() .authorizeRequests() .mvcMatchers("/api/**").authenticated() .mvcMatchers(HttpMethod.POST, "/api/accounts") .permitAll() .and(..
-
Spring boot 스프링 부트에서 request Validation 요청값 검증하기프로그래밍/서버 프로그래밍 2019. 2. 18. 14:22
Spring boot 스프링 부트에서 request Validation 요청값 검증하기 @Valid이용 안녕하세요. 오늘은 Spring boot 에서 request에 들어오는 요청값을 검증하는 법을 알아보겠습니다. 현재 제가 공부로 진행중인 프로젝트에서 소스를 조금 가져오겠습니다. 먼저 AccountController에 있는 createAccount메소드를 가져오겠습니다. @PostMapping public ResponseEntity createAccount(@RequestBody @Valid AccountDto dto, Errors errors) { if (errors.hasErrors()) { return ResponseEntity.badRequest().build(); } Account accoun..
-
DTO란프로그래밍/서버 프로그래밍 2019. 2. 15. 14:56
DTO란? 오늘은 DTO에 관해 포스팅 해보려고 한다. Spring 개발을 하면서 처음 들었던?? 낯설었던 용어중의 하나인데 이참에 확실히 짚고 넘어가는 것이 좋을 것 같다. 먼저 DTO란 쉽게 말해 Data Transfer Object 로 직역하자면 데이터 전송 객체 이다. 쉽게 말해 DATA를 전송하기 위해 존재하는 객체이다. Node JS를 이용한 백엔드만 개발했었던 나에게는 상당히 생소한 존재로 다가왔었다. JS에서는 JSON을 주고 받는데 따로 DTO같은 객체가 필요하지 않기 때문이다. 하지만 Spring 에서는 DTO가 없이는 데이터를 주고받기가 힘들다. 예를 들어 @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) publi..
-
[알고리즘] DP 다이내믹 프로그래밍 Dynamic Programming프로그래밍/알고리즘 2019. 1. 9. 16:42
동적 프로그래밍 DP(Dynamic Programming) 는 예전에 학교 알고리즘 시간에도 배웠지만, 잘 이해가 가지않아서 따로 다시 공부를 하려고 알고리즘 강의를 보게되었다. 이 글은 을 보면서 혼자 정리한 글이다. 문제 해결 방법 Brute-Force Approach Divide And Conquer Approach Dynamic Programming Approach Greedy Approach => 특별히 어떤 알고리즘이 좋다고 할 수는 없다. 상황에 맞는 접근 방법을 사용하자! DP 특징 주어진 문제를 하위로 나누어서 해결 문제를 작은 단위로 쪼개어서 생각한다는 것은 Divide and Conquer랑 비슷하지만 문제간의 관계가 다름. (하위 문제 끼리 종속성을 가지면 DP를 사용하는 것이 좋다..
-
2019.01.08 공부한 것프로그래밍/오늘 공부 2019. 1. 8. 17:28
Spring Boot 서버 AWS에 올리고 자동 배포까지 오늘은 하루종일 AWS와 씨름했다. Spring Boot로 만든 애플리케이션을 AWS EC2에 올려서 자동으로 배포되도록 하는 것을 항상 해보고 싶었는데, 배포를 하기도 전에 프로젝트를 끝마치지 못하고 다른 새로운 프로젝트를 하는 경우가 많아서 항상 미루고 있었다. 그래서 이번에는 자동배포를 모두 세팅해놓고, 그 다음에 프로젝트를 진행해야겠다는 생각을 했다. 그래서 오늘 인터넷의 듀토리얼들을 보고 결국 자동배포에 성공했다. 자동 배포를 하는 프로세스는 이랬다. GitHub의 master 브런치에 내가 배포하고 싶은 코드를 merge하거나 commit 후 push한다. Travis에서 이를 자동으로 Build하여 AWS의 S3로 보내준다. AWS의 ..
-
[알고스팟] RUNNING MEDIAN 알고리즘 풀이(?)프로그래밍/알고리즘 2018. 12. 31. 11:17
최근 취업 준비를 하면서 알고리즘 문제를 공부할 필요성을 느껴서 문제를 풀어보고 있다. 몇몇 문제는 내가 상상조차 불가능해서 손도 못대는 경우도 있지만... 일단 노력해보고 있다...허허 너무 간단히 푼 문제말고, 어렵게 느껴졌던 문제나... 새롭게 알게된 경우는 블로그에 풀이?를 올려서 나중에 다시 볼 수 있도록 올려볼 생각이다. 오늘 푼 문제는... 문제 한 수열의 중간값(median)은 이 수열을 정렬했을 때 가운데 오는 값입니다. 예를 들어 {3,1,5,4,2}를 정렬했을 때 가운데 오는 값은 3이지요. 수열의 길이가 짝수일 때는 가운데 있는 두 값 중 보다 작은 것을 수열의 중간값이라고 정의하도록 합시다. 한 수열의 중간값은 수열에 새로운 수가 추가될 때마다 바뀔 수 있습니다. 텅 빈 수열에서 ..
-
Spring Boot JPA 사용법프로그래밍/서버 프로그래밍 2018. 12. 20. 13:42
오늘은 지난번에 알아보았던 JPA를 스프링에서 어떻게 적용하는 지 함께 알아보겠습니다. 저는 Spring Boot를 이용해서 실습을 진행해보겠습니다. 본 실습은 jojoldu님의 블로그를 보면서 진행했습니다. (https://jojoldu.tistory.com/251?category=635883) 1.Dependency 추가 먼저 저는 maven을 사용하므로 pom.xml에 관련 dependency를 넣어주겠습니다! org.springframework.boot spring-boot-starter-data-jpa com.h2database h2 org.springframework.boot spring-boot-starter-test test org.projectlombok lombok true data j..
-
Spring 스프링 MyBatis 와 JPA-Hibernate프로그래밍/서버 프로그래밍 2018. 12. 18. 16:32
현재 인턴을 진행하고 있는 곳에서 스프링과 MyBatis를 처음으로 경험해보았습니다. 이전까지는 학교 수업중에 실습으로 JDBC를 사용하여 데이터베이스를 CREATE, READ, UPDATE, DELETE 해본게 전부 였지만 확실히 MyBatis 를 이용한 데이터의 접근 및 초기 설정이 더 편리하다는 느낌을 받았습니다. 이후 혼자 공부를 해오던 와중에 Spring JPA 혹은 Hibernate라고 불리우는 기술이 많이 쓰이고 있고 개발 속도도 더 빠르다는 점이 흥미로워 공부 겸 글을 작성해보려 합니다. MyBatis MyBatis를 처음 공부할 당시에는 iBatis라는 단어가 구글 검색 결과에 항상 같이 나와서 의아했습니다. 알고보니 iBatis 는 MyBatis 가 Google Code로 이전하기 이전..