수정 및 DB연결 관련 오류해결
·
Spring
페이지의 게시물을 등록하고 수정하는 과정의 기능을 구현하고 테스트 하는 과정에서 지속적으로 DB값이 변하지 않는다고 생각했다. 버전이슈, 빌드이슈 모든 걸 찾아보면서 그 이유를 찾기 위해서 별별 짓을 다해봤는데 결국은 아주 간단한 것에서 문제가 있었다. 위의 코드에서 어노테이션을 처음에 @after를 사용한 것이 문제였다. @aftereach로 바꾸자 마자 모든 문제가 해결되었다. @after을 사용하였을때는 위의 레포지토리를 가져와서 수정된 여부를 확인하는 테스트 코드에서 지속적으로 수정이 되지 않고 값이 변하지 않았다고 오류가 나왔다. 몇 번의 시행중 레포지토리에서 들어온 리스트의 인덱스 값을 변경하는 시도를 했다. 그 결과 테스트 성공 콘솔이 나왔다. 원인은 이전의 등록테스트에서 등록한 레포지토리의..
게시글 사이트 조회 목록 만들기 오류 해결
·
Spring
#스프링 부트와 AWS로 혼자 구현하는 웹서비스 계속 진행해오고 있는 책을 보면서 코딩하기를 하는 중에 이번에는 게시글 목록의 조회 부분에서 문제가 있었다. 원인은 간단했지만 오류코드를 제대로 보지 못한 나는 멍청하게 다른 오류들을 찾아보고 가장 기본적인 부분을 간과하고 있었다. 위의 오류를 보지 못하고 오직 브라우저에 보이는 view만을 가지고 생각한 것이다. 그래서 결과는 지옥의 whitelabel error...... 서버를 돌리면 처음에는 welcome page가 잘 나오고 등록 페이지로 넘어가고 심지어 db까지 저장이 되어서 어디가 잘못된 것인가를 파일경로나 버전오류로 생각하고 이를 해결하려고 열심히 찾아보았다. 하지만 아무리 코드의 연결관계를 뒤져보고 분석해도 window.location.hr..
구글 로그인 연동을 위한 분석과정
·
Spring
구글 로그인을 연동하기 위해서 먼저 User class를 생성한다. 위 코드는 DB에 저장될 데이터 테이블 빌딩으로 이름, 이메일, 프로필, 역할을 테이블의 열 목록으로 한다. 그리고 위의 코드를 작성하는 과정에서 Role class부분에 컴파일 에러가 뜰 것이다. 그렇기에 Role class를 생성한다. Role class는 열거형 클래스인 enum클래스로 생성한다. 추가적으로 annotaion인 @Enumerated(EnumType.STRING)은 JPA로 DB에 저장할때 Enum값을 String형태로 저장하는 것이다.(기본적으로는 int형태이다.) 이 설정을 하지 않는다면 DB에서 사용자의 Role부분의 값이 int형으로 되어 있어서 손님이라면 0으로 표시되고 일반사용자라면 1로 표시될 것이다. 그..
Thread 실행제어와 상태
·
CS 이론
Thread의 상태는 6가지(NEW, RUNNABLE, BLOCKED, WAITING, TIME_WATING, TERMINATED)로 나뉘어진다. 그 중에서 중요하게 봐야할 상태는 WAITING, BLOCKED, RUNNABLE 상태이다. 이 3가지 상태를 제어하는 Thread상태 제어 메서드는 위의 표에 적힌 메서드들이 있다. 가장 먼저 sleep() 메서드를 먼저 살펴보면, sleep은 현재 진행중인 쓰레드를 일정시간동안 정지시키는 메서드이다. 이 메서드는 interrupt()메서드와 떨어질 수 없는 관계이기 때문에 interrupt()메서드가 호출 될 경우를 필수예외로 처리해야 한다. sleep()메서드를 사용하면서 중요하게 생각할 것은 sleep()메서드는 static메서드라는 것입니다. stat..
프로세스와 프로세서, 쓰레드 개념알기
·
CS 이론
프로세서는 CPU나 MicroProcessor라는 하드웨어의 의미이다. 프로세스는 메모리에 적재되어 프로세서에 의해 실행 중인 프로그램이다. 자원과 쓰레드로 구성된다. 프로세스는 프로그램의 단위라고 생각하는 것이 쉽다. 쓰레드는 한 프로그램(프로세스)에서 각각의 일(기능) 등을 말한다. 즉, 일의 단위이다. 그래서 모든 프로세스는 적어도 하나의 쓰레드를 가지고 있다. 프로세스라는 리스트에 들어있는 쓰레드를 프로세서가 하나씩 꺼내서 처리한다고 생각할 수 있다. 멀티 태스킹(멀티 프로세싱) : 동시에 여러 프로세스를 실행하는 것 멀티 쓰레딩 : 하나의 프로세스 내에 동시에 여러 쓰레드를 실행 시키는 것 - 프로세스를 생성하는 것보다 쓰레드를 생성하는 비용이 적다. - 같은 프로세스 내의 쓰레드들은 서로 자원..