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
no image
[Spring Securitiy] 08 - 세션 정보 확인
세션(Session) 세션(Session)은 사용자가 웹 사이트에 로그인했을 때 사용자에 대한 정보를 일정 기간 동안에 서버에 기록하고 보관함으로써 사용자를 관리하기 위한 목적으로 사용되는 저장 공간이다. 세션 정보 확인 1. id 확인하기 String id = SecurityContextHolder.getContext().getAuthentication().getName(); SecurityContextHolder.getContext() - Spring Security에서 현재 실행 중인 보안 컨텍스트를 제공하는 클래스이다. 이를 통해 현재 사용자의 인증 정보에 접근할 수 있다. getAuthentication() - 현재 인증된 사용자의 인증 정보를 반환한다. 이 정보는 Authentication 인..
2024.02.25
no image
[Spring Security] 07 - 로그인 검증 로직
인증 Security를 통해 인증을 진행하는 방법은 사용자가 Login 페이지를 통해 아이디, 비밀번호를 POST 요청시 Spring Security가 데이터베이스에 저장된 회원의 정보를 조회 후 비밀번호를 검증하고 서버 세션 저장소에 해당 아이디에 대한 세션을 저장한다. UserDetails Spring Security에서 사용자의 정보를 담는 인터페이스이다. Spring Security에서 사용자의 정보를 불러오기 위해서 구현해야 하는 인터페이스로 기본 오버라이드 메서들을 구현해야 한다. 메소드 리턴 타입 설명 기본값 getAuthorities() Collection
2024.02.22