Back End
-
[Spring Security] Filter 가 두번 실행될 때 (when filter get executed twice in Spring)Back End/서버 비용 2022. 12. 17. 15:07
Case 갑자기 내가 작성한 AuthenticationFilter 가 2번 실행되는 현상을 목격했다. 단순히 chain.doFilter() 를 기준으로 앞뒤로 실행되는 것이 아닌 정확히 모든 로직이 2번이 실행되는 것이다. Cause 원인은 아래 예제코드와 같이 Spirng Security 에 등록할 필터를 Bean 으로 등록하고, Security Config 에서 또 Filter 를 추가한 데 있었다. @Configuration @EnableWebSecurity(debug = false) @EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true) class SecurityConfig { @Bean fun filterChain( a..
-
[Spring Data JPA] DB 예약어 처리 (You have an error in your SQL syntax)Back End/Spring Data JPA 2022. 12. 9. 18:25
실 DB 에 JPA 를 붙이다보면 가끔 마주하는 현상이다. 에러 메세지도 모호하기 그저 없다. SQL 문법이 틀렸다, SQL을 실행할 수 없다. 컬럼이 없다. 등등 차라리 Keyword Constraint 에 걸렸다고 해주지.... 무튼 모호한 에러메세지라면 한번 쯤 DB Keyword 에 걸리지 않았는지 생각해보자. DB 예약어(Keyword) 를 위반한 엔티티 @Entity class UserAttendanceEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(columnDefinition = "INT") val id: Long? = null @Column(columnDefinition = "INT") val userIdx..
-
[AWS] EventBridge 에서 Lambda 를 Trigger 하기Back End/AWS 2022. 11. 13. 17:51
Rule 생성 EventBrdige -> Rules 에서 Rule 생성 Schedule Job 으로 이벤트를 발생시킬 것인지, Event Pattern 으로 이벤트를 발생시킬지 선택하고 생성한다. Target 은 당연히 Lambda 로 생성하면된다. Resource Based Policy Statements 추가 Add Permission 을 선택하여 Action = lambda:InvokeFunction 을 추가한다.
-
[트러블슈팅] File: can't read input file : IOException 해결방법Back End/트러블슈팅 2022. 11. 13. 16:32
파일 권한 문제일 수도 있고, 소스경로가 틀렸을 수도 있고 원인은 다양하다. 아래의 File 내부 메서드로 내가 처한 상황이 어떠한 상황인지 확인할 수 있다. File file = iWantToRead(src); file.exists(); // 존재자체는 하는지 file.canRead(); // 읽기 권한이 있는지 file.isDirectory(); // 디렉토리인지 file.getAbsolutePath(); // 읽었다면 파일의 절대경로는 어디인지
-
[AWS] CloudWatch 로그를 S3 로 보관하기 (Exporting CloudWatch logs to S3 Bucket)Back End/AWS 2022. 11. 7. 11:20
CloudWatch, S3 그리고 S3 Glacier 의 가격 CloudWatch 는 단순 저장말고도 Metrix 를 이용해 경보등의 서비스를 생성할 수 있으므로 당연히 CloudWatch Log 서비스의 가격이 S3 보다 비싸다. 또, S3 가 S3 Glacier 보다 가격이 비싸다. (액세스 속도 차이) 그렇다면 장애사후분석등 로그를 꼭 보관해야하는 상황에서는 Alarm 등의 서비스를 이용하기 위해 7일 정도로 CloudWatch 에 보관하고 CloudWatch 의 로그를 S3 로 옮겨 1~2달을 보관하고 이후에는 S3 Glacier 로 옮겨 Archive 하는 것이 비용적으로 가장 효율적일 것이다. 그런데 문제점은 CloudWatch -> S3 로 옮기는 버튼은 AWS 콘솔에 존재하지만 주기적으로 ..
-
[트러블슈팅] ELB (Elastic Beanstalk) 에 대해 알아두면 좋은 지식들 (feat. ebextensions)Back End/트러블슈팅 2022. 10. 28. 16:13
... 너무 삽질을 많이 했다. 😭 Elastic Beanstalk(ELB) 에 모니터링 알람 설정, 환경 커스터마이징 등을 소스코드레벨에서 관리 할 수 있도록 하는 작업을 진행하면서 알게된 정보를 공유하고자 한다. 특히 httpd.conf 파일이 apache 버전으로 남아있던 현상은 두고두고 기억에 남을 것 같다. ELB & .ebextensions 1. *.config 파일들은 이름의 오름차순으로 실행된다. 작업 순서가 중요한 config 들은 00_tomcat.config , 01_unzip_font.config 와 같이 네이밍하여 작성한다. 2. *.config 파일 내부에 사용되는 프로퍼티인 commands 와 container_commands 는 실행시점에서 차이가 있다. # commands ..
-
[AWS] 서비스에 WAF 적용하기Back End/AWS 2022. 10. 10. 20:58
WAF 란? WAF(Web application firewall) 는 OSI 4레벨 layer 가 아닌 7레벨 Layer 에 적용되는 방화벽이다. WAF 라는 서비스를 사용하여 OWASP’s Top 10 Web Application Vulnerabilities 에 대한 방어를 어느정도 쉽게 구축할 수 있다. AWS WAF AWS 에서 제공하는 클라우드 환경에서 어려움 없이 쉽게 적용할 수 있는 WAF 서비스이다. OWASP’s Top 10 중 CSRF 를 제외하면 WAF를 적용하는 것 하나만으로 XSS공격, SQL Injection 공격을 포함하여 모두 쉽게 차단이 가능하다. 또한 Custom Rule 을 만들어서 특정 IP 가 일정시간 내에 규칙을 초과한 요청을 보낼 경우 Black List 에 넣거나..