Java
-
객체의 생명주기Java 2023. 7. 26. 15:30
객체는 힙(Heap)영역에 저장되고, 변수는 스택(stack)영역에 저장 됩니다. 가비지 컬렉터에 의해 해당 메모리가 회수된다. 객체는 new키워드를 사용해 생성자를 호출할떄 생성되고 힙에 객체의 메모리 공간에 배정된다. 1. 로컬(지역) 변수 지역변수는 처리 블로내에서만 사용할 수 있는 변수(메서 등 기타 블록 내) 변수 선언한곳에서 생성되고 블록이 종료한 시점에서 종료 2. 인스턴스변수 클래스의 필드로 선언하는 변수(클래스 블록 내) 객체가 생성 될때 생성 3. 클래스 변수 클래스가 메모리에 로드 될 때 생성하고 언로드 될 때 종료 static 필드로 선언한 변수 4. 가비지 컬렉션(GC) 유효하지 않는 메모리가 발생되면 JVM의 가비지 컬렉터가 불필요한 메모리를 정리해준다. 5. Servlet 생명..
-
객체지향이란?(OOP)Java 2023. 7. 26. 14:34
1. 객체지향이란? 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체를 만들고 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법 장점 코드 재사용성 유지보수 단점 개발속도 느림 실행속도 느림 코드의 어려움 2. 객체지향의 4가지 특징 캡슐화 데이터와 코드의 형태를 외부에서 알 수 없게 하고, 데이터의 구조와 역할, 기능을 하나의 캡슐 형태로 만드는 방법 접근 제어자(private)사용 set/get의 사용 추상화 클래스들의 공통적인 특성(변수, 메소드)들을 묶은 것 상속 부모 클래스에 정의된 변수 및 메서드들을 자식 클래스에서 상속받아 사용하는 것 자식 클래스에서 extends 키워드 사용 다형성 하나의 클래스 내부에 같은 이름으로 여러개 정의 하거나 상위 클래스의 메서드 들을 하..
-
Spring boot #7Java/Spring 2023. 5. 23. 09:10
4장 AuthenticationPrincipal을 사용하고 SecurityContext에 등록한다 정리 사용자 관리를 위한 User레이어를 구현한다. 모든 요청마다 한 번씩 사용자를 인증하기 위해 스프링 시큐리티가 제공하는 onceperrequestfilter를 상속해 jwtauthenticationfilter를 작성 했고, websecurityconfigureradapter를 상속해 어떤 경로는 인증해야하고 어떤 경로는 인증하지 않아도 되는지 어느 지점에서 filter를 실행할지도 설정 한 5장(프론트엔드 통합) 로그인 후 백엔드 서비스에게 받은 토큰을 어딘가에 저장해 놓고 HTTP요청을 보낼때마다 헤더에 Bearer토큰으로 지정해줘야 한다. 로그인 후 토큰을 저장할 로컬 스토리지 저장하는 로직을 구현..
-
Spring boot #6Java/Spring 2023. 5. 22. 09:09
4장 인증 백엔드 통합 인증 엑세스 할 수 있는 지 확인하는게 인증 이다 인가 자원을 어디까지 활용 할 것 인지에 대한 정의 이다 Basic인증 Basic 인증에서 최초 로그인 후 HTTP 요청 헤더 Authorization 아이디와 비밀번호를 콜론으로 이어 붙인 후 Base64로 인코딩한 문자열 함께 보낸다 토큰 기반 인증 최초 로그인 시 서버가 만들어 준다. 클라이언트는 이후 요청에 아이디와 비밀번호 대신 토큰을 계속 넘겨 자신이 인증된 사용자임을 알린다 토큰은 서버가 마음대로 생성할 수 있으므로 사용자가의 인가 정보 또는 유효기간을 정해 관리할 수 있다. JSON웹 토큰 JWT 토큰{header}.{payload}.{signature}로 구성 되어 있다. Header typ : type를 줄인 말로..
-
Spring boot #5Java/Spring 2023. 5. 18. 09:12
3장 프론트엔드 개발 Node.js 자바스크립트 런타임 환경 구글 크롬의 v8 자바스크립트 엔진을 실행한다 npm node.js의 패키지 관리 시스템이다 터미널 npm version 교재는 8.5.0 버전 mkdir test-project cd test-project npm init npm install react npm install 프론트 엔드 어플리케이션 생성 프론트쪽 폴더 생성 후 mkdir react-workspace cd react-workspace npx create-react-app todo-react-app cd todo-react-app npm start localhost:3000 구동확인 npm install @mui/icons-material @mui/material @emotion..
-
Spring boot #3Java/Spring 2023. 5. 16. 09:11
REST API 반복되는 문제 상황을 해결하기 위한 도구이다 제약조건 클라이언트-서버 리소스를 관리하는 서버가 존재하고, 다수의 클라이언트가 리소스를 소비하기 위해 네트워크를 통해 서버에 접근하는 구조를 의미한다 상태가 없음 클라이언트가 서버에 요청을 보낼 때 이전 요청의 영향을 받지 않음을 의미한다. Login페이지에서 다음 페이로 넘어갔을때 이전요청페이지를 알고 있으면 상태가 있음 반대면 없음 캐시가능한 데이터 HTTP에서는 cache-control이라는 헤더에 리소스의 캐시 여부를 명시할 수 있다. 일관적인 인터페이스 시스템 또는 애플리케이션의 리소스에 접근하기 위한 인터페이스가 일관적이여야 한다는 뜻 리소스에 접근하는 방식, 요청의 형식, 응답의 형식이 애플리케이션 전반에 걸쳐 URI, 요청의 형..
-