공부
-
else 사용을 지양해야하는 이유공부/java 2024. 2. 1. 11:44
1. 가독성 향상 : else 문을 피하면 코드가 더 선형적으로 보이고 이해하기 쉬워지다 2. 조기 리턴 : 조건이 충족되지 않을 때 빠르게 함수에서 리턴하는 방식으로 코드를 작성하면 그 이후 코드는 조건이 충족 됐을 때만 실행되는 것으로 간주할 수 있어 코드 흐름을 단순화 시킨다 3. 유지 보수 용이 : else 문을 사용하지 않으면 향후 코드 변경 시 조건을 추가하거나 변경하는 것이 더 쉬워집니다 하지만 사용해야하면 해야함,,, 그게 기준이 애매함. 상황에 따라 달라진다 상황 봐 가면서 쓰도록
-
jwt 최종 정리공부/기본 2023. 11. 24. 16:32
- 클라이언트와 서버 간의 정보 전달에 주로 사용되는 토큰 기반 인증 방식 - 이를 통해 클라이언트는 보호된 자원에 접근할 수 있습니다 1. 토큰 발급 - keyPairGenerator로 RSA알고리즘을 사용한 공개키/개인키 쌍을 생성, 이를 통해 JWT를 생성 - 생성된 JWT에는 사용자 ID가 주제로 설정, 만료 시간도 설정됩 - signWith 메소드를 통해 RSA알고리즘과 개인키를 사용하여 서명 public class JwtTokenProvider { private KeyPairGenerator keyPairGenerator; private KeyPair keyPair; private PrivateKey privateKey; public JwtTokenProvider() throws Excepti..
-
Optional공부/기본 2023. 11. 21. 10:18
- java 8 부터 도입된 클래스 - null을 직접 다루는 것보다 안전하게 객체의 존재 또는 부재를 표현할 수 있게 해줌 - optional 객체는 특정 타입의 객체를 포장하여 해당 객체가 null일 수도 있음을 명시적으로 나타낸다 ex) Optional user = getUserById(id); if (user.isPresent()) { System.out.println(user.get().getName()); } else { System.out.println("User not found"); } // or if (!user.isPresent()) { throw new EntityNotFoundException("userId에 해당하는 유저가 없습니다."); } // 이후 로직 // 또는 Strin..
-
회원가입 SHA-256공부/기본 2023. 11. 20. 11:59
SHA-256 - 64자리의 문자열을 반환 - 단방향 암호화 : 암호화된 문자열을 다시 원래의 문자열로 복호화할 수 없는 방법 - 입력값이 조그만 달라지더라도 변환되는 값이 완전히 달라지기때문에 변환값을 토대로 입력값을 유추하는 것은 거의 불가능 import javax.xml.bind.DatatypeConverter; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; class Main { public static void main(String[] args) throws Exception { String password = "SHA-256"; MessageDigest md = MessageDigest.getInsta..
-
Spring MVC 아키텍처공부/기본 2023. 11. 20. 08:37
- modle : db와 상호작용하며 비즈니스 로직을 처리하는 모듈 - view : client에게 보여지는 결과화면을 반환하는 모듈 - controller : client 요청이 들어왔을 때 그 입력을 처리하고 어떤 로직을 실행시킬 것인지 제어하는 모듈 model1, model2 의 차이점 - 클라이언트의 요청 사항을 모듈화, 하나의 파일로 처리할 것인지 model1 - was에서 모든 파일에 클라이언트가 요청한 로직을 처리하는경우 - jsp에서 view, controller의 역할을 담당하며 그 결과를 클라이언트에게 반환한다 - 아키텍처 간단, jsp에 거의 모든 로직을 집어넣기 때문에 작은 웹 어플리케이션을 제작할 때에는 무리 없지만 대규모는 유지보수 힘듬 model2 - model1을 보완한 아키..
-
JWT 토큰공부/기본 2023. 11. 17. 15:21
- 웹에서 사용되는 json 형식의 토큰에 대한 표준 규격 - 사용자의 인증과 인가 정보를 서버와 클라이언트간에 안전하게 주고 받기 위해서 사용 - 보통 Authorization HTTP헤더를 Bearer 의 형태로 설정하여 클라이언트에서 서버로 전송 - 서버에서는 토큰에 포함되어 있는 서명 정보를통해 위변조 여부를 검증 - Base64로 인코딩 = 육안으로 보면 eyJ로 시작하는 아주 긴 문자열 - 온라인 디버거를 통해 어렵지 않게 실제로 저장되어 있는 내용을 json 형태로 디코딩하여 확인해볼 수 있다 JWT 구조 하나의 JWT 토큰은 헤더, 페이로드, 서명 헤더 : 토큰의 유형, 서명 알고리즘에 명시 페이로드 : 소위 claim이라고 불리는 사용자의 인증/인가 정보 서명 : 헤더와 페이로드가 비밀키..