목록분류 전체보기 (99)
되자!백엔드개발자

회사업무로 카카오페이 인증쪽 연동하는 일을 맡게되었다. 한번 복습해볼겸 집에서 정말 간단화해서 구현한걸 기록 겸 작성해본다. 정말 간단하게 해서 DB 아예 안썼다. 실무에서 이러면 큰일난다. 서버간통신 예제 겸 보면 좋겠다. 목표 - 카카오페이 인증창 띄우기 개발환경 - JAVA 17 - Spring 3.2.2 필요 Gradle implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-star..

에러 내용 Controller에 대한 테스트 코드를 짜는데 해당 URL의 Controller에 메소드까지 도달하지 못하고 400에러가 났다. 제대로 JSON처리도 했고 @RequestBody도 만들었고 기존에 비슷한 Controller 테스트를 진행했을 때는 잘 됐었는데???! 안되는 원인을 도저히 떠오르지 않았고 경우의 수를 두고 디버깅해본 결과 @RequestBody로 받는 인자가 있을 때 에러가 발생하는 것을 확인하고 열심히 구글링 시작... 테스트코드 @Test @DisplayName("POST /v1/mentee/{mentoringId} 요청시 해당 멘토링에 멘티 신청을 한다. " + "멘티신청시 멘토링 count도 +1 되어야한다.") public void applyMentee() throws..

AWS 상태검사 1/2 실패 현재 GitHub와 AWS EC2 사이에 CI/CD 파이프라인을 구축해서 프로젝트를 진행 중이다. 의도했던대로 프로젝트를 push할 때마다 서버에 제대로 올라가긴 하는데 이틀에 한번 꼴로 아래와 같이 상태 검사를 실패하며 서버에 무한 로딩이 걸리기 시작했다. 이러한 경우 인스턴스를 중지 -> 재실행 하면 해결되는 문제긴 했다. 하지만 너무 자주 오류가 나기도 하고 다른 팀원들이 AWS 서버에 올린 프로젝트로 테스트 할 때 오류가 나버리면 내가 해결해주지 않는 이상 이도 저도 못하게 되기 때문에 다른 해결책을 강구해야만 했다. 해결 방안 찾는 여정 먼저 AWS 공식 문서를 통해 이러한 에러가 발생하는 경우를 찾아보았다. 연결할 수 없는 EC2 Linux 인스턴스의 상태 확인 실..

프로젝트에서 google 로그인을 구현을 담당했다. 처음으로 front와 협업을 했는데 front가 따로 있어서 서버가 달라졌을 때 발생하는 CORS문제가 웹개발의 신입 신고식이라고 하더니 정말 호되게 신고식했다ㅠㅠ 분명 URL에서 직접 접속했을 때는 제대로 작동하고, CORS에 대한 대처도 다 했는데 이상하게 front쪽에서 요청을 했을 때 로그인 페이지조차 보이지 않는 CORS문제가 발생한 것이다. 이 문제를 해결하기 위해 먼저 어떤 에러 코드가 발생했는지 보고 CORS에 대해 공부한 뒤, 공부 내용을 바탕으로 어떻게 해결해야하는지 알아보겠다. 아래에 출처를 적긴 했으나 이 CORS에 대한 글의 기본 베이스는 'CORS는 왜 이렇게 우리를 힘들게 하는 걸까?'이며 이해가 안되는 부분을 추가적으로 찾아..

개발하다가 직렬화 Util을 사용하는 것을 보고 공부해보았다. 직렬화란? Java 시스템 내에서 사용되는 객체를 외부 Java 시스템에서도 사용할 수 있도록 바이트 형태로 변환하는 기술과 바이트로 변환된 데이터를 다시 객체로 변환하는 기술을 통틀어서 말한다. 즉 JVM 메모리에 상주되어있는 데이터를 Byte형태로 변환하는 것을 의미한다. 구현 방법은 Serializable 인터페이스를 상속받아서 구현하는 것 import java.io.Serializable; public class Order implements Serializable { public static final long serialVersionUID = 42L; ... } serialVersionUID를 지정하고 변경되어서는 안된다. 다른 시..

에러 내용 GitHub Action으로 CI/CD 파이프라인을 구현하던 중 아래와 같은 에러 발생 이는 gradlew에 권한이 없기 때문에 발생한다. 해결 local에서 해당 프로젝트의 repository의 root 디렉토리로 이동한 다음 아래의 명령어를 실행한다. $ git update-index --chmod=+x gradlew 이제 git status를 해보면 아래와 같이 gradlew가 수정됐다고 나온다. 이 내용을 remote repository에 push해주면 끝.
프로세스의 생성 프로세스는 부모 프로세스로부터 자식 프로세스를 복제(fork())하는 방식으로 생성한다. 먼저 자식이 부모의 주소공간을 복사하고 새로운 프로그램을 덮어(exec()) 씌운다. 프로세스 생성 시 사용되는 시스템 콜 fork() : 새로운 프로세스를 생성 부모를 그대로 복사 주소공간 할당 exec() : 새로운 프로그램을 복제된 프로세스에 덮어씌움 시스템 콜을 이용한다는 것은 OS가 대신 해준다는 것이다. 부모-자식형태이므로 프로세스는 트리(계층 구조)형성 프로세스는 자원을 필요로 한다. (CPU, Memory 등) 자원은 운영체제로부터 받는다. 부모 프로세스와 공유하는 경우도 있다. 자원의 공유 원칙적으로는 부모와 공유하지 않지만 공유하는 경우도 있다. 일부를 공유하는 모델 전혀 공유하지 ..

개발 공부 중 update문을 구현하다가 궁금한 점이 생겼다. 나는 기존에 JPA를 이용하여 update를 구현할 때는 아래와 같이 dirty checking을 이용하여 구현하였다. (물론 setter을 이용하진 않지만 설명상 ㅎㅎ) @Transactional public void edit(Long id, PostEdit postEdit) { Post post = postRepository.findById(id) .orElseThrow(() -> new IllegalArgumentException("존재하지 않는 글입니다.")); post.setTitle(postEdit.getTitle()); } 그런데 가끔가다 아래처럼 JpaRepository의 save()를 이용하여 구현하는 분들도 계시는데 이 둘이..
에러 메시지 No serializer found for class {{클래스 이름}} and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) 원인 Controller을 테스트 하기 위해 DTO객체를 JSON으로 직렬화 해줘야 해서 Jackson을 이용했는데 클래스, properties를 못찾는다는 에러가 발생했다. 검색해보니 스프링 부트에는 Serialize하는 과정에서 접근 제한자가 멤버변수의 접근제한자가 public이거나, private이라면 public getter method가 있어야 변환이 가능하다고 한다. 레퍼런스: https:..
에러메시지 error during connect: This error may indicate that the docker daemon is not running.: Get http://~~.%2Fpipe%2Fdocker_engine/v1.24/images/json: open //./pipe/docker_engine: The system cannot find the file specified. 시도 1: Docker 다시 접속 : 실패 시도 2: 아래 명령어 입력 cd C:\Program Files\Docker\Docker DockerCli.exe -SwitchDaemon 명령어를 입력하니 docker이 데스크에서 제대로 실행되지 않고 있다고 알림 문이 뜨더라고요 컴퓨터 껏다 켜보니 잘 됩니다...완전 허무