Back End
-
[AWS] Permission denied (publickey,gssapi-keyex,gssapi-with-mic)Back End/AWS 2022. 8. 28. 22:44
Permission denied 라는 오류문구 때문에 네트워크 인바운드에 내 IP 를 추가도 해보고, pem 키 확인도 해보고, known-hosts 도 초기화 해봤지만.... 해결이 되지 않았다. 원인은 유저명이 틀렸던 것이었다.... 분명 ec2 에 추정 운영체제는 Ubuntu 였는데 접속 유저명은 Linux 의 ec2-user 였던 것이다...😥 예시 AWS CLI ssh -i ~/.ssh/my.pem ec2-user@1.2.3.4 [AWS] Mac 에서 EC2 인스턴스로 SSH 접속 EC2 인스턴스로 SSH 접속 ssh -i [Mac북에 있는 pem키 경로] [접속하고자 하는 유저계정]@[접속하고자 하는 인스턴스의 IP] ex) ssh -i ~/.ssh/mykey.pem ubuntu@xx.xxx...
-
[Spring JPA] 중간테이블 (조인테이블) 이 있을 때 연관관계 매핑Back End/Spring Data JPA 2022. 8. 28. 22:39
MyBatis 로만 구성된 환경에 JPA 를 적용시키면서 중간테이블이 있는 구조를 만나게 되었다. A B C 의 참조관계인데 실제로 사용할 테이블은 A,C 이며 B는 참조용 테이블일 뿐 이었다. A,B,C 모두 엔티티로 만들고 연관관계를 매핑하는 방법은 너무 기계적이고 쓸모없어 보였다. 그래서 서칭을 하다가 좋은 포스팅을 찾게되었고, 이를 활용한 방법을 기록하고자 한다. @JoinTable (kotlin) @Entity class TableA { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(columnDefinition = "INT") var id: Long? = null @ManyToOne(fetch = FetchType.LAZY) ..
-
[Spring Framework] QueryDsl 적용하기 (with Maven, IntelliJ) - 소스코드에 generated 폴더 없이 사용하기Back End/Spring Framework 2022. 8. 28. 22:32
pom.xml (Maven) 빌드파일에 QClass 들을 포함시킵니다. com.mysema.maven apt-maven-plugin 1.1.3 process target/generated-sources/java com.querydsl.apt.jpa.JPAAnnotationProcessor IntelliJ 빌드파일에 포함된 QClass 들을 소스코드에서 인식할 수 있게 합니다. 그리고 maven install 을 하고 작업하면 끝! 경로 : File - Project Structure - Modules - Sources # Reference [JPA] QueryDSL Q Class 생성 안될 때 pom.xml에 querydsl관련 의존성과, 플러그인을 설정했는데 Q Class가 생성이 되질 않았다.File..
-
[Spring Framework] 다국어 처리 설정 (message properties)Back End/Spring Framework 2022. 8. 15. 15:25
Spring Boot 에서 다국어 처리하기 Spring Boot 에서는 별다른 설정 없이 messages로 시작하는 properties들을 MessageSource로 읽어 Bundle로 인식할 수 있다. Spring Framework 에서 다국어 처리하기 Bean 설정하기 아래 두가지 방법 중 하나로 설정 하면 된다. 1. XML 파일로 설정 2. Java Config 로 설정 @Bean public ReloadableResourceBundleMessageSource messageSource(){ ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setB..
-
[Spring Framework] Maven 라이브러리 연동(ClassNotFoundException: javax.servlet.jsp.jstl.core.Config)Back End/Spring Framework 2022. 6. 9. 19:36
이걸 뭐라 제목을 지어야할 지 아직 모르겠다. ClassNotFoundException: javax.servlet.jsp.jstl.core.Config 클래스를 찾을 수 없다는 에러인데 보통 pom.xml 에 의존성을 추가하고 라이브러리 jar 파일을 다운받아 /WEB-INF/lib 에 추가하라고 한다. 인텔리제이에서 pom.xml 에 의존성을 추가하고 maven refresh 를 하니 External Libraries 에 떡하니 아래와 같이 다운로드 되어있지 않은가...! Gradle 처럼 Maven 도 추가하면 IDE가 알아서 해주는구나! 하고 다시 실행했는데 여전히 ClassNotFoundException: javax.servlet.jsp.jstl.core.Config 를 내뱉었다. 뭔가 링크가 안..
-
[AWS] 우리는 왜 CloudFront 와 로드밸런서에 SSL(TLS)을 달아야하는가?Back End/AWS 2022. 6. 5. 22:44
Prerequisite - Network Sniffing HTTPS 는 네트워크 스니핑을 막기 위해 만들어졌다. 네트워크 스니핑(Network Sniffing)이란 네트워크(전선)를 타고 흐르는 데이터(패킷)들을 탈취하는 것을 말한다. 스니핑을 하기 위해 네트워크 스니퍼라는 응용프로그램을 만드는데 이러한 프로그램으로 해당 컴퓨터로 들어오고 나가는 패킷을 가질 수 있다. 라우터도 작은 컴퓨터니 라우터에 설치할 수도 있을 것이고, 해당 라우터에 연결된 PC에 설치할 수도 있다. Prerequisite - HTTPS HTTPS 와 HTTP 는 네트워크(전선)를 타고 흐르는 데이터를 암호화 하느냐 안하느냐의 차이다. 물론 HTTPS 또한 SSL MITM 라는 기법으로 스니핑 할 수 있다. (가짜인증서로 데이터..
-
[PHP] CURL 은 리다이렉트 응답이 오면 재요청하지 않는다. (feat. CURL 관련함수 정리)Back End/etc 2022. 6. 5. 22:00
PHP 는 개발자마다 코드 구현 패턴이 너무 달라 너무~~~~ 별로다 😭😭😭 CURL 은 요청에 대한 응답이 리다이렉트로 돌아와도 재요청하지 않는다. CURL 요청에 대한 response가 비어있는 상태로 들어오는 현상을 발견해서 이리저리 로그를 찍어봤더니 CURL 요청은 서버에서 리다이렉트를 던져주면 재요청을 하지 않더라...그래 뭐... 그럴 수 있지... 그게 디폴트일 수 있지.. 리다이렉트 응답에 대해 Location 헤더를 따르도록 내가 일일이 코딩해야되? 다행이도 그건 아니었다. CURLOPT_FOLLOWLOCATION 라는 옵션을 setopt() 에서 설정해주면 된다. # CURL 관련 함수 curl_init : 세션 초기화, 핸들값 리턴 curl_setopt : 옵션 세팅 (옵션값에 대해서..
-
[트러블슈팅] Request Body 가 빈값으로 전달됨 (405 MissingServletRequestParameterException)Back End/트러블슈팅 2022. 5. 21. 22:01
BE 의 컨트롤러는 PUT Method 를 매핑하고 있었고, FE 에서는 PUT 요청으로 보내고 있었는데 405 Method Not Allowed 를 FE 에서 전달받아, 스프링시큐리티 설정 어딘가에서 특정 HTTP Method 를 막아놓은 줄 알고 엄청 삽질을 했습니다... 심지어 BE 에서 확인 할 수 있는 Exception 은 MissingServletRequestParameterException 이었는데 보통 클라이언트가 API 명세와 다른 Request Body 를 보냈을 때 발생 합니다. 하지만... 저는 그게 아니었죠. ㅠ_ㅠ... 값 자체가 전혀 전달이 되지 않았거든요,,, 현상 컨트롤러에 Request Body 가 빈값으로 전달됨 원인 FE 에서 Payload 는 HTML formData..