분류 전체보기 91

REST / REST API

REST란? 정의) Representational State Transfer의 약자 자원을 이름으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미 자원의 표현에 의한 상태 전달 자원의 표현 자원: 해당 소프트웨어가 관리하는 모든 것 자원의 표현: 그 자원을 표현하기 위한 이름 상태(정보) 전달 데이터가 요청되는 시점에서 자원의 상태(정보)를 전달함 JSON 혹은 XML를 통해 데이터를 주고 받는 것이 일반적 월드와이드웹(WWW)과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식 REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일 REST는 네트워크 상에서 클라이언트와 서버 사이의 통..

Metaverse/Network 2023.02.11

스프링 빈과 의존 관계

생성자에 @Autowired가 있으면 스프링이 연관된 객체를 스프링 컨테이너에서 찾아 넣어줌 이렇게 객체 의존 관계를 외부에서 넣어주는 것을 DI(Dependency injection), 의존성 주입이라고 함 DI에는 필드 주입, setter 주입, 생성자 주입이 있음 @Autowired를 통한 DI는 스프링이 관리하는 객체에서만 동 스프링 빈을 등록하는 방법 1. 컴포넌트 스캔과 자동 의존관계 설정 2. 자바 코드로 직접 스프링 빈 등록 컴포넌트 스캔 원리 @Component 애노테이션이 있으면 스프링 빈으로 자동 등록됨 @Controller 컨트롤러가 스프링 빈으로 자동 등록된 이유도 컴포넌트 스캔 때문 @Component를 포함하는 다음 애노테이션도 스프링 빈으로 자동 등록됨 - @Controlle..

Study / SQLite

SQLiteOpenHelper 클래스, SQLiteDatabase 클래스, Cursor 인터페이스 활용 Cursor : 데이터베이스에 저장되어있는 테이블의 행을 참조하여 데이터를 가져오는 역할 자주 사용되는 메소드 Cursor.getInt(), Cursor.getString .... : DB 테이블의 실제 Data를 가지고 옴 Cursor.getColumnIndex(String colimnName): DB테이블의 해당 컬럼(필드) 이름을 얻어 옴 Cursor.getPosition(): Cursor가 가리키고 있는 DB 테이블 행(Row) Position을 얻어옴 Cursor.getColumnName(int columnIndex): 컬럼(필드) index에 해당하는 컬럼의 이름을 얻어 옴 Cursor.ge..

Study / Context

Context란? 새롭게 생성된 객체가 지금 무슨 일이 일어나고 있는지 알 수 있도록 함 애플리케이션과 액티비티에 대한 정보를 얻기 위해 사용 앱에 관련해 시스템이 관리하고 있는 정보에 접근 안드로이드 시스템 서비스에서 제공하는 API 호출 종류 Application Context application 생명 주기에 귀속 싱글톤: 앱이 죽기 전까지 동일한 하나의 객체를 반환 getApplicationContext() 통해 접근 가장 오래 유지됨 Activity Context Activity 생명주기에 귀속 getContext() 통해 접근 Activity의 범위 내에서 Context 전달 언제 사용하는지? 데이터베이스를 관장하는 AppDatabase처럼 싱글톤으로 존재하는 경우 초기화 시 context가 ..

Study / View 전환

intent: 여러 화면 간의 이동 가능하게 하는 것 inflate: xml에 표기된 레이아웃들을 메모리에 로딩된 후 객체화 시키는 과정 recyclerView(): 데이터 집합들을 각각의 개별 아이템 단위로 구성하여 화면에 출력해주는 뷰 그룹이며, 수 많은 데이터를 스크롤 가능한 리스트 형태로 표시해주는 위젯 의미 viewholder: 넣고자 하는 데이터를 실제 레이아웃의 데이터로 연결시키는 기능, Item 뷰들을 재활용하기 위해 각 요소를 저장해두고 사용, 아이템 생성 시 뷰 바인딩은 한 번만 하고 그 바인딩된 객체를 가져다 사용하여 성능 부분에서 효율적 adapter: 사용자의 데이터를 받아 뷰를 생성해주는 객체로 ListView와는 독립적으로 동작하는 객체 listview() 구현 순서 1) Li..

Repositiry / Service / Test

Controller: 웹 MVC의 컨트롤러 역할 Service: 핵심 비즈니스 로직 구현 Repository: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 Domain: 비즈니스 도메인 객체 1. Entity - 데이터베이스에 쓰일 필드와 여러 엔티티간 연관관계 정의 - 테이블 전체가 엔티티, 1개의 행들이 엔티티 객체 - private Long id; // 하나의 id라는 column을 정의할 수 있음 2. Repository - 엔티티에 의해 생성된 DB에 접근하는 메서드들을 사용하기 위한 인터페이스 - 엔티티를 선언함으로써 데이터베이스 구조를 만들었다면, 여기에 어떤 값을 넣거나 넣어진 값을 조회하는 등의 CRUD(Create, Read, Update, Delete)를 해야 쓸모가 있는..

API

1) 정적컨텐츠: 파일을 그대로 웹브라우저에 내려줌 2) MVC(Model, View, Controller): 가장 많이 쓰는 방식 html을 서버에서 변형해 동적으로 내려줌 3) API: JSON이라는 데이터 구조 포맷으로 클라이언트에게 데이터 전달 (View 없음) 클라이언트와 서버의 비동기 통신 요청(request)메시지: 클라이언트에서 서버로 통신하는 메시지 응답(response)메시지: 서버에서 클라이언트로 통신하는 메시지 웹에서 화면전환(새로고침) 없이 이루어지는 동작들은 대부분 비동기 통신 -> 클라이언트에서 서버로 요청 메시지를 보낼 때, 본문에 데이터를 담아 보내야 함, 서버에서 클라이언트로 응답을 보낼 때에도 본문에 데이터를 담아서 보내야 함 -> 본문: body 즉, 요청본문 requ..

Controller와 GetMapping

Controller란? 1) 사용자의 요청이 진입하는 지점이며 2) 요청에 따라 어떤 처리를 할지 결정하고 (실질적인 처리는 서비스에서 담당) 3) 사용자에게 view를 응답으로 보내줌 Controller의 역할 처리해야 할 서비스가 많은 경우 중간 제어자 필요함 A 요청에 대한 것은 A Controller가 맡아 로직처리를 위한 서비스 호출 @GetMapping("hello") : http://localhost:8080/hello 요청이 들어오면 아래의 함수 실행 - hello 라는 view(.html)를 찾아서 반환해줌 - static: controller가 없어도 알아서 찾아 @RequestMapping("hello") : http://localhost:8080/hello 가 요청됨 @Request..