본문 바로가기

분류 전체보기277

[Android Studio] 유저에게 날짜 / 시간 정보 입력받기 DatePickerDialog(), TimePickerDialog() + 받아올 때 문자열 가공 버튼을 클릭하면 DatePickerDialog 객체를 생성 후 실행하는 코드 btnDate.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { DatePickerDialog dialog = new DatePickerDialog( AddActivity.this, new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) { // 월은 +1 해줘야 한다. index로 세기 때문 month += 1; // 월이나 일은 한자리면 왼쪽에 0.. 2024. 1. 4.
[Android Studio] Retrofit2 통신 시 상태 코드에 따른 코드 작성법 @Override public void onResponse(Call call, Response response) { dismissProgress(); if (response.isSuccessful()){ UserRes userRes = response.body(); SharedPreferences sp = getSharedPreferences(Config.PREFERENCE_NAME, MODE_PRIVATE); SharedPreferences.Editor editor = sp.edit(); editor.putString("token", userRes.access_token); editor.apply(); // 이상 없으므로, 메인 액티비티를 실행한다. Intent intent = new Intent(Lo.. 2024. 1. 4.
[Android Studio] 네트워크로 데이터 처리할 때 사용하는 프로그레스 다이얼로그 만들기 // 네트워크로 데이터 처리할 때 사용할 다이얼로그 Dialog dialog; private void showProgress(){ dialog = new Dialog(this); dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); dialog.setContentView(new ProgressBar(this)); dialog.setCancelable(false); dialog.setCanceledOnTouchOutside(false); dialog.show(); } // 다이얼로그 사라지게 하는 함수 private void dismissProgress(){ dialog.dismiss(); } onCreate() 함수.. 2024. 1. 4.
[Android Studio] Retrofit2 라이브러리를 이용한 POST로 API 호출하기 api 패키지 안에 사용할 api 들에 맞게 인터페이스를 생성한다. 유저에 관한 api이기 때문에 UserApi 인터페이스 생성한다. public interface UserApi { // 회원가입 API @POST("/user/register") Call register(@Body User user); } httpmethod(path) Call 함수명(@Body 보낼 데이터 = 클래스 객체로) 위 형식으로 함수를 생성한다. 그러기 위해선 보낼 객체와 받을 객체가 필요하기 때문에, model 패키지에 User, UserRes 클래스를 생성한다. public class User { public String email; public String password; public String nickname; pu.. 2024. 1. 4.
[Android Studio] Retrofit2 라이브러리 사용을 위한 세팅 방법 먼저, 라이브러리를 사용하기 위해 임포트 해준다. // 네트워크 통신 라이브러리 implementation("com.squareup.retrofit2:retrofit:2.9.0") // json 데이터 파싱 라이브러리 implementation("com.squareup.retrofit2:converter-gson:2.9.0") // 네트워크 통신 로그 남기는 라이브러리 implementation("com.squareup.okhttp3:logging-interceptor:4.9.0") build.gradle파일의 dependencies에 위 코드 작성 (공식 홈페이지에 있는 버전 확인해서 사용하기) manifest 파일엔 위 코드 작성 public class NetworkClient { public sta.. 2024. 1. 4.
[React] 로그인하지 않은 유저가 로그인이 필요한 path로 못들어오게 막는법 첫 화면 첫화면(localhost:3000)에서 로그인 시, JWT토큰을 응답받고 localstorage에 저장하고 /main 으로 이동하게 로직을 짰는데, 로그인을 하지 않았을 때는 /main으로 들어오지 못하게 하려고 한다. 막는 법 "/main"에 해당하는 컴포넌트 에 가서 const jwtToken = localStorage.getItem("jwtToken"); useEffect(() => { if (jwtToken == null) return nav("/"); fetchData(); }, []); Main 컴포넌트가 첫 마운트 됐을 때 안에 코드를 실행하게 했다. 로그인 시 localStorage에 넣은 토큰을 가져와서 null인 경우에 첫 화면으로 돌아가게 했다. 다른 방법도 여러가지 있을텐데.. 2024. 1. 4.
[React] axios 요청할 때 http Method 별로 JWT 토큰을 headers에 넣어 보내는 방법 1. GET 요청 axios.get('https://example.com/api/data', { headers: { 'Authorization': 'Bearer yourAccessToken', 'Content-Type': 'application/json', // 예시 다른 헤더 추가 }, }) .then(response => { // GET 요청 성공 처리 }) .catch(error => { // 오류 처리 }); get()의 두번째 인자에 넣는다. 2. POST 요청 axios.post('https://example.com/api/data', { data: 'someData', }, { headers: { 'Authorization': 'Bearer yourAccessToken', 'Content-T.. 2024. 1. 4.
[Android Studio] Volley 라이브러리로 통신 시 Header에 데이터 세팅하는 방법 네이버 파파고(번역) API ( https://developers.naver.com/docs/papago/papago-nmt-api-reference.md#%ED%8C%8C%EB%9D%BC%EB%AF%B8%ED%84%B0 ) 설명서를 보며 구현 중에 Header에 발급받은 클라이언트 ID와 클라이언트 secret 값을 넣어서 요청해야 한다고 써있다. JsonObjectRequest request = new JsonObjectRequest( // 위 아래 코드들은 생략 ){ @Override public Map getHeaders() throws AuthFailureError { Map headers = new HashMap(); headers.put("X-Naver-Client-Id", Config.X_.. 2024. 1. 3.
[Android Studio] Volley 라이브러리를 이용한 POST 통신 방법 (body에 json 보내기) 그 동안은 Volley 라이브러리로 네트워크 통신할 때 GET 방식과 body는 null로만 보냈었는데, 네이버 파파고 api 이용을 위해 공식문서를 보면서 POST 방식으로 body에 데이터를 담아 보내봤다. RequestQueue queue = Volley.newRequestQueue(MainActivity.this); String url = "https://openapi.naver.com/v1/papago/n2mt"; JSONObject body = new JSONObject(); try { body.put("source", "ko"); body.put("target", target); body.put("text", sentence); } catch (JSONException e) { return;.. 2024. 1. 3.
[Android Studio] RecyclerView 페이징 처리하기 YouTube API를 이용해 입력받은 검색어를 유튜브에 검색해서 관련 영상의 타이틀과 내용, 썸네일을 가져오는 중에, 리사이클러뷰는 25개까지 표시하고 맨 밑까지 내려갔을때 추가로 가져올 수 있게 페이징 처리하는 코드를 작성했다. recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); } @Override public void onScrolled(@NonNull Recycl.. 2024. 1. 3.