전체 글(355)
-
[게시판] 게시글 작성
본격적인 메인 엑티비티 기능을 만들기 이전에 간단한 게시판 기능 먼저 구현하도록 결정했다. 지금 만드려고 하는 게시판의 경우, 자신이 어떠한 활동을 하였고, 어떠한 보상을 받았는지 유저들 간에 소통을 함으로써 동기를 부여하기 위한 목적을 가지고 있다. PostController @Slf4j @RequiredArgsConstructor @RequestMapping("/lc") @Controller public class PostController { private final PostService postService; private final JwtTokenProvider jwtTokenProvider; // 게시글 작성 @PostMapping("/post/write") public ResponseEnti..
2023.01.25 -
프로세스 (Process) / 스레드 (Thread)
프로세스 (Process) # 운영체제로부터 자원을 할당받은 작업의 단위 # 실행 중인 프로그램 # 메모리에 들어와 실행되고있는 프로그램의 인스턴스 # 스케줄링의 대상이 되는 작업(task)와 동일 의미 프로세스 내부에는 최소 하나의 스레드를 가지고 있다. 실제로는 스레드 단위로 스케줄링을 진행한다. 프로그램을 실행하게 되면 메모리 할당이 우선적으로 진행되고, 할당된 메모리 공간으로 바이너리 코드가 올라간다. 이때부터 프로세스라고 한다. 프로세스에 할당되는 시스템 자원 CPU 시간 필요 메모리 주소 공간 Code, Data, Stack, Heap 구조 메모리 영역 프로세스 특징 각 프로세스마다 독립된 Code, Data, Stack, Heap 메모리 영역을 할당받는다. 기본적으로 프로세스 당 최소 1개 ..
2023.01.23 -
[Java] StringBuilder / StringBuffer
String StringBuilder / StringBuffer 와 일반적인 String 클래스의 가장 큰 차이점은 불변함(immutable)이다. String str = "nice"; str = str + " meet you"; 기본적으로 위의 코드를 살펴본다면 nice 문구에 meet you라는 문구가 붙어 변한다고 생각할 것이다. 하지만, nice 라는 문구를 가진 str 변수의 메모리와 meet you라는 문구가 추가된 str은 같은 메모리를 사용하는 것이 아니라 새로 추가되는 것이다. 따라서 기존의 nice만 있던 str변수는 가비지(Garbage)가 된 상태이고, 이후 GC(Garbage Collector) 로 인해 제거가 된다. 즉, 불변하기 때문에 기존의 데이터가 변경되는 것이 아니라 새로..
2023.01.23 -
[Java] Object 클래스 내의 equals() / hashcode() 함수
equals(), hashcode() 함수들은 모든 자바 객체의 부모 객체인 Object 클래스에 정의되어있다. 따라서, 자바의 모든 객체는 equals() 와 hashcode() 함수를 상속받는다. equals() equals() 는 해석한 그대로의 기능을 가지고있다. 2개의 객체가 동일한지 검사하기 위한 메소드이다. equals() 는 2개의 객체가 참조하는 것이 동일한 데이터인지 동일성을 확인한다. 2개의 객체가 가리키는 주소가 동일한 메모리 주소일 경우에 동일하다고 판단하는 것이다. // 기본적으로 만들어져있는 equals() 메소드 // 해당 메소드를 오버라이딩하여 구현한다. public boolean equals(Object obj) { return (this == obj); } 동일한 객체가..
2023.01.23 -
[DB] 인덱스 (Index)
인덱스는 데이터베이스의 테이블에 대한 검색 속도를 향상시켜주는 자료구조이다. 테이블의 특정 컬럼(속성)에 인덱스를 생성하면, 해당 컬럼의 데이터를 정렬한 후에 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장한다. 컬럼의 값과 물리적 주소를 해시맵처럼 key, value 한 쌍으로 관리한다. 쉽게 말해서 책에서 원하는 내용의 글을 찾을 수 있도록 도와주는 책갈피와 같은 역할이라고 보면 될 것 같다. 데이터 - 책의 내용 인덱스 - 책의 목차 물리적 주소 - 책의 페이지 번호 인덱스 장점 / 단점 인덱스 장점 DB 데이터 검색 속도 및 성능 향상. 인덱스에 의한 정렬된 형태를 갖는 데이터. 특정 조건의 데이터를 찾기 위해서는 Full Scan을 통해 전체적인 데이터 전부를 조건과 비교하여 찾았어야 했..
2023.01.23 -
[회원관리] 회원탈퇴
로그아웃 구현이 완료가 되었으니 이제 회원탈퇴 기능을 구현해보자 회원탈퇴 기능 비교적 간단하다. 로그아웃은 토큰만 지워주면 끝이였으나 회원탈퇴 기능은 추가로 member 계정도 같이 삭제해주면 끝난다. MemberController // 회원탈퇴 @DeleteMapping("/unregister") public ResponseEntity memberUnregister(HttpServletRequest request){ log.info("회원탈퇴 - 탈퇴 토큰 : {}", request.getHeader("Authorization")); return memberService.memberUnregister(request); } 삭제되는 처리만 필요하므로 PostMapping이 아닌 DeleteMapping으..
2023.01.21