본문 바로가기
반응형

분류 전체보기171

[Spring Boot] 회원가입, 회원조회 기능 구현 회원가입, 회원조회 기능 구현 MemberController에 Service 의존성 주입을 해줬으니 이제 View를 구현해야 한다. 아래와 같이 name을 /members/new에 POST로 보내는 form을 하나 작성했다. /templates/members/createMemberForm.html 이름: 이제 사용자가 /members/new에 접근하면 이전에 작성한 form을 보여주도록 mapping 해주자. package com.devjaewoo.hellospring.controller; import com.devjaewoo.hellospring.service.MemberService; import org.springframework.beans.factory.annotation.Autowired; im.. 2022. 2. 13.
[Spring Boot] 의존성 주입과 스프링 빈 등록 의존성 주입과 스프링 빈 등록 DB에 사용자 정보를 넣고 빼기 위해 Service와 Repository를 만들었다. 이제 웹을 통해 접근할 수 있도록 Controller를 만들어줘야 한다. MemberController.java package com.devjaewoo.hellospring.controller; import com.devjaewoo.hellospring.repository.MemoryMemberRepository; import com.devjaewoo.hellospring.service.MemberService; import org.springframework.stereotype.Controller; @Controller public class MemberController { } 이제 S.. 2022. 2. 13.
[Spring Boot] Service와 테스트 케이스 만들기 Service 만들기 Repository가 단순히 DB에 데이터를 넣고 꺼내는 역할을 수행한다면, Service는 비즈니스 로직을 처리하는 역할을 한다. 간단하게 말하자면 DB에서 받아온 데이터를 가공하는 것으로, DB에 판매 가격만 저장되어 있을 때 판매 가격에서 부가세가 얼마나 나왔는지 계산해 사용자에게 보여주는 것과 비슷하다. MemberService.java package com.devjaewoo.hellospring.service; import com.devjaewoo.hellospring.domain.Member; import com.devjaewoo.hellospring.repository.MemberRepository; import java.util.List; import java.util.. 2022. 2. 13.
[Spring Boot] Repository와 테스트 케이스 만들기 Repository 만들기 Repository는 기본적으로 Entity를 DB에 저장하고 불러오는 작업을 한다. 현재 어떤 DB를 사용할지 결정이 되지 않았고, 테스트용 Repository를 선언해 개발을 진행하다가, DB가 결정되면 해당 Repository로 갈아 끼기로 한 시나리오라고 가정하자. 우선 나중에 Repository를 구현체만 바꿔서 갈아 끼울 수 있도록 동일한 인터페이스를 갖도록 하기 위해 Repository에 들어갈 함수들을 모아놓은 인터페이스를 정의해야 한다. Repository들을 모아놓을 repository 패키지를 생성하고, 그 안에 아래의 코드를 작성한다. MemberRepository.java package com.devjaewoo.hellospring.repository; .. 2022. 2. 13.
[Spring Boot] JSON 형태로 객체 반환하기 Intro API 서버를 만들 때 일반적으로 클라이언트한테 JSON 형식으로 데이터를 넘겨줍니다. 하지만 아래처럼 JSON 데이터를 일일이 조립하면 생산성도 떨어질뿐더러 오류가 날 확률이 높습니다. String json = "{\"name\" : \"" + name + "\"}"; return json; Spring에선 @ResponseBody 어노테이션을 통해 객체를 직접 JSON으로 변환시켜줄 수 있습니다. 이번 시간엔 JSON 형태로 response를 보내는 방법에 대해 알아보겠습니다. JSON 형태로 반환하기 우선 JSON으로 변환시킬 객체를 만들어보겠습니다. TestApi.java public class TestApi { private String id; private String passwor.. 2022. 2. 12.
[Spring Boot] Spring Boot 동작 구조 Intro Spring Framework는 주로 MVC 패턴으로 개발됩니다. MVC 패턴은 각각 Model, View, Controller란 뜻으로, 이 3가지의 요소가 서로 역할을 분담하여 요청을 처리하는 구조입니다. 이때 클라이언트가 요청하는 페이지에 따라 정적 컨텐츠와 동적 컨텐츠로 나뉩니다. 동적 컨텐츠 처리 구조 클라이언트가 요청하는 URL을 받아오고 싶을 때 아래와 같이 Controller를 정의합니다. HelloController.java @Controller public class HelloController { @GetMapping("hello") public String hello(Model model) { model.addAttribute("data", "hello!!"); retur.. 2022. 2. 12.
[Android] Binding 사용 시 모든 요소가 아무 동작도 안할 때 Binding 사용 시 모든 요소가 아무 동작도 안할 때 viewBinding 사용 시 간혹 OnClick, OnCheckChange 등의 이벤트들이 하나도 동작하지 않을 떄가 있다. binding 사용 후 binding을 통해 이벤트를 등록했으면 그걸 보여주도록 설정을 변경해야 하는데, 기존 코드를 그대로 놔둬서 오류가 발생하는 것이었다. Activity의 경우 setContentView의 인자값을 binding.root로 변경해주면 된다. override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) setCon.. 2022. 2. 9.
[It's My Waye] 9. 알람 화면 기능 구현 Intro 알람 화면의 기능을 구현했다. 구현한 기능들은 다음과 같다. 알람 전체 활성화 Off 시 아래의 항목 전부 숨김 방해금지 시간의 숫자를 24 이상으로 입력할 경우 23으로 설정 알람 전체 활성화 상태, 방해금지 시간 SharedPreference에 저장 앱 실행 시 DB에서 Item 목록을 불러와 RecyclerView에 표시 알람 비활성화 시 항목 숨김 binding.switchAlarmAll.setOnCheckedChangeListener { _, isChecked -> updateAlarmEnabled(isChecked) } private fun updateAlarmEnabled(enable: Boolean) { Log.d(TAG, "updateAlarmEnabled: $enable") .. 2022. 2. 9.
[It's My Waye] 8. 알람 UI 구현 Intro 사용자가 알람을 켜고 끌 수 있는 알람 화면을 구현했다. 놀러 다니고 게임도 하고 하다보니 이 단순한 UI 하나 구현하는데 1주일이나 써버렸다. 앞으로 더 열심히 해야겠다. 아무튼 이 화면은 아래의 기능들을 제공한다. 알람 전체 활성화 알람 금지 시간 설정 알람 개별 활성화 및 상세설정 알람 UI 화면 구현 우선 LinearLayout과 RecyclerView로 기본 화면을 구성해봤다. 맨 위에 알람 활성화 스위치가 있다. 이 스위치를 꺼놓으면 개별 알람 설정과 관계없이 모든 알람을 끄도록 설정할 것이다. 그 아래에는 알람 금지 시간대가 있는데, 24시간을 기준으로 현재 시간이 설정 시간의 범위 안에 들어갈 경우 알람을 무시하도록 해야 한다. 예를 들자면, 0 ~ 7일 경우 0, 1, 2, 3.. 2022. 2. 9.
반응형