[Android Studio] Intent(인텐트)
Intent의 4대 컴포넌트 액티비티(Activity) 서비스(Service) 브로드캐스트 리시버(Broadcast Receiver) 컨텐트 프로바이더(Content Provider) 이 각각의 컴포넌트 간의 통신을 맡고 있는 것이 Intent(인텐트)이다. Intent 사용법 1. 명시적 Intent - 화면 전환 // (현재 액티비티, 이동하고 싶은 액티비티) Intent intent = new Intent(MainActivity.this, SubActivity.class); // 액티비티 이동 startActivity(intent); - A activity에서 B activity에 데이터 전달 // (현재 액티비티, 이동하고 싶은 액티비티) Intent intent = new Intent(MainA..
2024.04.12
no image
[Android Studio] 내부 파일 살펴보기
MainActivity.java 살펴보기 전체 창은 왼쪽 가운데, 그리고 오른쪽 부분으로 구분되어 있다. 그중 가운데 부분에는 두 개의 탭이 있다. [MainActivity.java]는 자바 소스 파일이다. 생성한 안드로이드 프로젝트에서는 자바 언어를 사용하기 때문에 java라는 확장자를 가진 파일이 만들어지며 표준 자바의 문법으로 작성되어 있다. 그래서 자바로 프로그램을 만들어 본 경험이 있다면 이 파일이 많이 익숙할 것이다. 그러나 자세히 코드를 살펴보면 평범한 자바 프로그램과 형태가 조금 다르다는 것을 알 수 있다. package com.example.myapplication; import android.os.Bundle; import androidx.activity.EdgeToEdge; impor..
2024.04.12
no image
[Android Studio] TextView 기본 사용법
1. TextView 사용법을 알아보자. TextView는 안드로이드 UI를 구성함에 있어 화면에 텍스트를 표시하는 기능을 담당한다. 안드로이드에서 제공하는 위젯 중 가장 많이 사용되는 위젯이다. 텍스트 출력 기능을 가진 기본 위젯이므로, 텍스트와 연관된 기능을 포함하는 Button 또는 EditText의 부모 클래스이다. 2. 코드를 입력해보자. TextView를 화면에 표시하기 위해서는 Layout 리소스 XML에 TextView를 추가하면 된다. Layout/activity_main.xml 결과 3. JAVA 소스에서 TextView의 텍스트를 변경해보자. 앱 실행 시 처음 보여질 텍스트를 지정하기 위해 "text" 속성을 사용하였는데 만약 앱 실행 중 동적으로 텍스트를 변경하려면 어떻게 해야 할까..
2024.04.12
no image
[Android Studio] 프로젝트 생성 방법
프로젝트 생성 방법 안드로이드 2024.04.12일 기준으로 자바 언어 기반으로 프로젝트 생성 방법을 알아보자. 1. New Project 창 "Empty Views Activity"를 선택해 Next로 이동한다. 2. 프로젝트 설정 적절한 이름을 선택 후 언어와 build Configuration을 선택한다. 3. Finish를 눌러 프로젝트를 생성한다.
2024.04.12
[Spring Boot] @RestController
서론 @RestController는 @Controller와 @ResponseBody의 조합이다. @RestController는 단순히 객체만을 반환하고 객체 데이터는 JSON 또는 XML 형식으로 HTTP 응답을 담아서 전송한다. 따라서 return 값이 @Controller와 달리 반환 값으로 뷰를 찾는 것이 아닌, HTPP 메세지 바디에 바로 입력하게 된다. @RestController @RequiredArgsConstructorpublic class TestController { private final MemberService memberService; @GetMapping("api/board/member") public Member findMember(@RequestParam("id") Stri..
2024.04.10
no image
[Spring Boot] @Controller
서론 Spring에서 클래스에 컨트롤러를 지정해주기 위한 애노테이션은 2가지가 있다. 이 2가지의 주요 차이점은 HTTP ResponseBody가 생성되는 방식, @Controller + @ResponseBody 조합이 @RestController라고 말할 수 있다. 오늘은 Controller에 대해 알아보자 @Controller @Controller는 Spring MVC의 컨트롤러 애노테이션이며 주로 View(화면)을 반환하기 위해 사용한다. @Controllerpublic class TestController { // @RequestMapping(value = "api/board/update", method = {RequestMethod.GET}) @GetMapping("api/board/update..
2024.04.10
no image
[Spring Security] 10 - csrf enable 설정 방법
csrf 란? CSRF(Cross-Site Request Forgery)는 요청을 위조하여 사용자가 원하지 않아도 서버측으로 특정 요청을 강제로 보내는 방식이다. (회원 정보 변경, 게시글 CRUD를 사용자 모르게 요청) 개발 환경에서 csrf disable() 개발 환경에서는 Security Config 클래스를 통해 csrf 설정을 disable 설정하였다. 배포 환경에서는 csrf 공격 방지를 위해 csrf disable 설정을 제거하고 추가적인 설정을 진행해야 한다. 배포 환경에서 진행 사항 security config 클래스에서 csrf.disable() 설정을 진행하지 않으면 자동으로 enable 설정이 진행된다. enable 설정시 스프링 시큐리티는 CsrfFilter를 통해 POST, PU..
2024.02.26
no image
[Spring Security] 09 - 세션 설정
로그인 정보 사용자가 로그인을 진행한 뒤 사용자 정보는 SecurityContextHolder에 의해서 서버 세션에 관리된다. 이때 세션에 관해 세션의 소멸 시간, 아이디당 세션 생성 개수를 설정하는 방법에 대해 알아보자. 세션 소멸 시간 설정 세션 타임아웃 설정을 통해 로그인 이후 세션이 유지되고 소멸하는 시간을 설정할 수 있다. 세션 소멸 시점은 서버에 마지막 특정 요청을 수행한 뒤 설정한 시간만큼 유지된다. (기본 1800초) application.properties //초 기반 server.servlet.session.timeout=1800 //분 기반 server.servlet.session.timeout=90m 다중 로그인 설정 하나의 아이디에 대해서 여러 브라우저에 로그인하는 방법 https..
2024.02.26