본문 바로가기

전체 글122

[네트워크] JWT 토큰 인증 (쿠키, 세션, 토큰 인증 방식) 기본적이면서도 헷갈리는 개념인 쿠키, 세션, 토큰에 대해 공부해보았다.이 세 가지 개념은 로그인을 구현할 때 빠질 수 없이 나오는 키워드 들인 것 같다. 서버가 클라이언트의 인증을 확인하는 방법으로 쿠키, 세션, 토큰 방식 이렇게 3가지가 있다고 한다.먼저 각각의 방식을 살펴보자! 🍪 쿠키: 클라이언트(브라우저)가 가지고 있는 정보쿠키는 브라우저에 저장되는 key-value형식의 문자열 덩어리다. 클라이언트가 어떠한 웹 사이트를 방문할 경우 그 사이트가 사용하고 있는 서버를 통해 브라우저에 설치되는 작은 기록 정보 파일이다. 즉 클라이언트가 가지고 다니는 정보라고 할 수 있다. 쿠키 인증 방식은 브라우저가 서버에 요청을 보내고 서버는 응답을 쿠키에 작성하여 보낸다. 쿠키 방식의 단점- 가장 큰 단점은 .. 2024. 6. 9.
[Android / Java] 보호 번호 입력창 만들기 데이터를 입력받을 때 휴대폰 번호나 비밀 번호 같은 정보는 가려서 표시해주는 것이 좋다. 아래와 같은 화면 구현을 하고 싶었는데 번호를 가리고 해제하는 부분이 잘 안 됐다.. 로직을 이해하고 기억하자 처음 작성했던 코드! visibleButton.setOnClickListener(v -> { if (isPasswordVisible) { phonEditText.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_TEXT_VARIATION_PASSWORD); visibleButton.setBackground(getResources().getDrawable(R.drawable.visib.. 2024. 6. 7.
[Android / Java] CustomView로 재사용성 높이기 이런 형태의 단순한 회원가입 창을 만들고 싶은데.. 내 코드는 이런 모양이 나왔다 더보기  작성할 때도 번거로웠지만 이름, 생년월일, 휴대폰 번호, 이메일을 적는 칸이 글자만 다르고 모두 동일했다. input란도 마찬가지였다. 또 한번 margin을 바꾸려면 하나하나 바꿔줘야 하는 번거로운 작업이 수반됐다. 이런 반복적인 요소들을 컴포넌트화 하여 재사용할 수 있다면 얼마나 좋을까? 해결할 수 있는 방법으.. 2024. 6. 5.
[Android / Java] 색상 자료화 1. 색상 리소스 추가res >> values >> colors.xml파일에 색상 리소스를 추가한다.의 name 속성 값은 다른 곳에서 리소스를 참조하기 위한 리소스 ID로 사용된다. 따라서 중복을 피하고 명시적인 이름으로 하는 것이 좋다.  2. 추가한 색상 리소스 참조색상 리소스를 참조하여 속성값으로 지정할 때는 "@color/리소스 ID"형식으로 지정한다. 3. 자바 코드에서 참조하기 참고https://vzio.tistory.com/230 2024. 6. 4.
[Android / Java] 안드로이드의 4대 구성요소 안드로이드에서는 액티비티(Activity), 리시버(Receiver), 프로바이더(Provider), 서비스(Service)를 4대 구성요소라고 한다. 간단한 앱이라면 액티비티만으로도 충분히 개발할 수 있지만, 앱이 복잡해질수록 4대 구성요소를 골고루 사용해줘야 한다고 한다.  1. 액티비티(Activity)화면 하나당 하나의 액티비티를 가지며, 눈에 보이는 화면을 만들 때 최소 1개가 필요하다 2. 리시버(Receiver)안드로이드에는 내부의 수많은 브로드캐스트들이 있다. 대표적인 브로드캐스트의 예시로 "전화 수신", "문자 수신", "배터리 부족" 등이 있다. 이 중에서 원하는 브로드캐스트를 수신하는 객체가 리시버이며, 상대적으로 다른 구성요소보다 구현이 간단하다. 3. 프로바이더(Provider)데.. 2024. 6. 3.
[Android / Java] Layout: 화면에 뷰를 수놓는 방법 안드로이드에서 화면에 보이는 모든 것은 뷰라고 배웠다. 뷰그룹은 뷰를 포함할 수 있는 뷰를 말한다. 대표적인 뷰그룹으로는 LinearLayout, RelativeLayout, FrameLayout과 최근에 추가된 ConstraintLayout이 있다. 뷰그룹 또한 뷰이므로 클릭도 되고 색상도 변경할 수 있다.  # LinearLayout (선형 레이아웃)가장 많이 사용되는 뷰그룹이다. 수평 또는 수직으로 자식 View를 배치할 수 있다. 그리고 자식 뷰끼리는 서로 겹칠 수 없다는 특징이 있다. 가중치 속성으로 다양한 크기의 기기를 지원할 수 있다! 1.1 orientation 속성자식 뷰들을 배치할 방향을 결정한다. 수평과 수직 두 가지 방법으로 자식 뷰를 배치할 수 있다. 뷰그룹도 뷰이기 때문에 다른 .. 2024. 6. 3.
[백준 3055번 / Java] 탈출 ☑️ bfs() 방식은 최단 경로를 찾기 때문에 방문노드를 다시 변경해주지 않아도 된다! (이게 항상 헷갈렸는데 조금은 알 것 같다..) 📝 이 문제에서 까다로웠던 것은 매분마다 물이 찬다는 점이었다. 1분씩 증가할 수록 물이 차는 범위는 늘어난다. 그렇지만 잘 생각해보면 1분일 때 물이 차는 범위, 2분일 때의 범위, 3분.. 각각의 분마다 물의 범위는 일정하다. 즉, 고슴도치가 이동한 횟수에 따라 물이 차는 범위는 일정하므로 메모이제이션을 이용하여 구현했다.  ❗️주의할 점은 배열의 복사는 참조만 복사하게 돼서 그냥 할당해서는 안 되고 새로 배열을 할당한 후에 복사해주었다.  import java.io.BufferedReader;import java.io.IOException;import java... 2024. 6. 1.
[Spring] POJO, Java Bean, Spring Bean 헷갈리는 개념인 POJO, Java Bean, Spring Bean에 대해 알아보았다! POJO: Plain Old Java Object오래된 방식의 간단한 자바 오브젝트라는 말로서 Java EE 등의 중량 프레임워크들을 사용하게 되면서 해당 프레임워크에 종속된 "무거운" 객체를 만들게 된 것에 반발해서 사용되게 된 용어이다: 회원에게 제한을 두지 않고 사용자에게 엔터티에 대한 완전한 액세스 권한을 부여하고 싶지 않을 때 사용한다.- 인수가 없는 생성자가 있을 수도 있고 없을 수도 있다. - 어떠한 자바 객체도 POJO에 속한다! Java Bean: 사용자에게 엔터티를 제공하고 엔터티의 일부만 제공하려는 경우에 사용된다.1. 기본 생성자를 가진다.2. 필드는 getter와 setter만 액세스할 수 있다.. 2024. 6. 1.
[백준 1987번 / Java] 알파벳 재귀 방식으로 안 풀고 싶어서 고민했지만,, 머리가 터질 것 같아서 포기했다...ㅠ항상 중복 체크와 방문이 헷갈렸는데 다시 한번 풀어볼 수 있어서 좋았다. dfs방식을 이용했고 문자열이 중복되거나 탐색이 종료되었을 때 count 값의 최대값을 업데이트 하는 식으로 구현했다. 문자열의 중복체크는 알파벳만 들어간다는 점에서 97~122의 정수로 바꿀 수 있기 때문에 정수 배열 200칸을 만들어 map 처럼 사용했다.  import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;import static java.lang.System.out;public class Main { .. 2024. 6. 1.