서버
-
AWS 에서 전화 옴서버/삽질 2023. 9. 25. 19:14
23년 9월 25일 오후 세시쯤.. 몇주만에 등 운동이후 근육통을 느끼게 되어 신나게 틸라피아를 먹을 생각에 들떠있던 중 걸려온 전화. 02-6965-9000 평소에도 보이스피싱 전화, 문자가 하도 많이와서 02로 시작하는 번호만 보면 웰노운 알고리즘을 풀듯 보이스피싱이라는것을 염두해 두고 받는다. 수화기 너머로 들리는 첫마디, "안녕하세요 아마존 웹 서비스 입니다 이영재님 맞으시죠??" 와.. 요즘은 보이스피싱이 하도 치밀해져서 내가 AWS 사용한다는 것 까지 알고있구나. 어디까지 말하나 한번 보자 "지금 고객님 깃허브에 엑세스키가 올라가있는 상태여서 고객님께 메일을 보내드렸는데 아직 처리가 안돼서 전화드렸습니다." 이때부터 뭔가 잘못됐음을 감지했다. 분명 ec2 인스턴스에 보안관련 민감한 정보들을 환..
-
[HTTP] TypeError: Failed to execute 'fetch' on 'Window': Request with GET/HEAD method cannot have body.서버/삽질 2023. 9. 17. 21:37
StudyHub 개발 도중 제목과 같은 에러를 만났다. 사용자가 아래 화면에서 관심있는 스터디를 검색했을 때 스터디 제목을 기준으로 검색 내용과 일치하는 제목이 있을 경우 해당 스터디엔티티를 반환하는 로직을 구현하고있었다. @GetMapping("") public ResponseEntity findPostByString(FindPostRequestByString request) { return ResponseEntity.ok(studyPostService.findPostResponseByString(request)); } Controller 에서 json 형식으로 받아온 Dto 를 넘겨줘 결과적으로 해당 스터디를 변환한 dto를 받아올 생각이었다. 하지만 스웨거에서 요청을 보낸 결과 아래 에러메시지를 뱉..
-
[AWS] elasticbeanstalk 배포 4xx error서버/삽질 2023. 8. 4. 01:21
24시간 무중단 배포 + github action을 이용한 CI/CD 를 수행하기 위해 롤링방식을 이용해 elasticbeanstalk에 프로젝트를 배포하던 중 4xx 에러가 발생해 배포에 실패했다. 기존에 동작하던 인스턴스를 A라 하자. 깃허브에 새로 push를 하게되면 트리거가 되어 AWS 에서 새로운 ec2 인스턴스 B를 생성한 후 jar 파일을 실행하게된다. 24시간 무중단 배포를 실행하고 있으므로 인스턴스 A는 계속 실행중에 있어야 한다. 로드밸런서는 jar 파일을 실행한 인스턴스 B에 대해 기본 uri 즉 {B의ip주소}:80 포트로 get 요청을 보내게 된다. 인스턴스 B의 80포트는 로드밸런서에서만 접근가능하도록 보안그룹을 설정해 놓았으므로 정상적이라면 200OK를 반환해야한다. 하지만 계..
-
동기, 비동기 처리방식서버 2023. 4. 4. 15:41
동기(synchronous : 동시에 일어나는) : 동시에 일어난다. 이를 프로그래밍적으로 해석하면 요청과 그 결과가 동시에 일어난다는 뜻입니다. 예를들어 클라이언트가 서버에 요청을 보낼 경우 서버는 시간이 얼마나 걸리던지 무조건 요청에 대한 결과를 반환해야한다는 것으로 해석할 수 있습니다. 비동기(Asynchronous : 동시에 일어나지 않는) : 비동기는 동시에 일어나지 않는다. 요청과 결과가 동시에 일어나지 않아도 된다는 뜻입니다. 예를들어 클라이언트가 서버에 요청을 보낼 경우 서버는 요청 작업을 수행하며 다른 작업도 수행할 수 있다는 것으로 해석할 수 있습니다. 요청 작업을 수행하며 다른 작업도 수행할 수 있다?? 동기 비동기에 대해 공부하며 가장 이해가 안 갔던 부분입니다. 동기 방식의 경우 ..
-
AWS rds connect timed out 에러서버/삽질 2023. 3. 27. 13:32
ec2 인스턴스에서 서버를 실행했더니 아래와 같은 오류가 생겼다 일단 최고의 개발 친구 챗 gpt 에게 물어보자 1. 호스트 이름이나 IP 주소가 올바르게 지정되어 있는지 확인합니다. url: jdbc:mariadb://freelec-springboot2-webservice.cujr0knvcvjp.ap-northeast-2.rds.amazonaws.com:3306/freelec_springboot2_webservice?characterEncoding=UTF-8&serverTimezone=UTC yml 파일의 url이 올바르게 지정되어 있는것을 보면 1번문제는 아니다. 다음 2번 2. 호스트의 포트가 올바르게 열려있는지 확인합니다. 포트번호도 3306이고, 퍼블릭 액세스도 가능으로 맞춰놓았기 때문에 문제가..
-
[SPRING BOOT] 세션을 이용한 로그인 구현서버/토이프로젝트 <게시판> 2023. 1. 20. 21:19
김영한 강사님의 스프링 MVC 2편을 듣고 개인 토이프로젝트에 로그인 기능을 구현해 보았다. https://github.com/elyudwo/toyProjectBoard GitHub - elyudwo/toyProjectBoard Contribute to elyudwo/toyProjectBoard development by creating an account on GitHub. github.com 로그인 순서 흐름 1. 로그인 화면에서 회원 id , 회원 password 입력 2. dto 로 가져온 객체를 dao로 변환해 DB 아이디와 패스워드를 꺼내 service 계층에 전달 3. service 에서 올바른 로그인인지 확인 후 올바른 로그인일 경우 Member 반환 틀린 로그인일 경우 null 반환 4...
-
서블릿 JSP MVC 차이점서버 2022. 4. 7. 13:42
서블릿과 JSP는 모두 웹 페이지를 동적으로 실행시킨다는 공통점이 있다. 서블릿 같은 경우 자바 코드안에 HTML 코드를 일일이 기입해준다. 이렇게 되면 코드를 작성하기 번거롭고 유지보수가 매우 힘들어 진다. 이를 보완하려고 나온 기술이 JSP이다. JSP는 자바 코드안에 HTML 코드를 작성하는 것이 아니라 HTML코드 안에 '' 문법을 이용하여 자바 코드를 껴넣는 방식으로 동적 웹페이지를 제공한다. 이렇게 되면 개발자가 일일이 HTML 코드를 작성하는 서블릿 보다는 유지보수가 편하다. 하지만 아직 JAVA코드, 리포지토리 등등 다양한 코드가 JSP안에 노출되어서 쉽지는 않을것이다. 서블릿과 JSP는 모두 클라이언트에게 제공되는 뷰와 서버에서 처리하는 비즈니스 로직을 모두 한 곳에서 처리한다는 단점이 ..