코딩/sparta TIL 41

TIL 38 : AOP

💡 Spring AOP는 “포인트컷 표현식”이 해당 Advice 메서드에만 매핑된다?@Before("@annotation(com.example.CheckSomething) && args(email)")public void checkSomething(String email) { ... }이렇게 포인트컷을 작성하면, Spring은 이 포인트컷을 이 Advice 메서드 하나에만 적용. ✅ 포인트컷(Pointcut) 이란?AOP에서 “어떤 메서드에 Advice(전처리, 후처리 등)를 적용할지 지정하는 조건”@Before("@annotation(CheckUserDeleted) && args(email)")public void checkUserDeleted(String email) { ... }🧠 “CheckU..

코딩/sparta TIL 2025.04.24

TIL 37 : Optional, 람다식, instanceof

💡 instanceof가 뭐야?👉 instanceof는 자바에서 객체의 타입을 판별하는 키워드!if (object instanceof String) { ... }이건 말 그대로:“이 object가 String 타입인지 확인해줘” 라는 뜻. ☕️ Optional이란?👉 “값이 있을 수도, 없을 수도 있는 경우”를 안전하게 처리하는 자바 객체Optional user = userRepository.findByEmail(email);이건 null 대신 Optional로 감싼 User값이 있을 수도 있고 (isPresent()), 없을 수도 있음 (isEmpty()) ✅ 왜 Optional을 쓸까?전통 방식 (NullPointerException 위험)User user = userRepository.find..

코딩/sparta TIL 2025.04.24

TIL 36 : EntityManagerFactory, EntityManager, EntityTransaction

DB랑 놀기 위한 삼총사 😎EntityManagerFactory (팩토리 공장장)📌 무거운 객체라서 애플리케이션 시작 시 딱 한 번만 만들어야 함.💼 DB와 연결 설정, 커넥션 풀 등 리소스를 미리 준비해두는 공장 같은 역할.📦 EntityManager를 만들어주는 공장(Factory) 역할.EntityManagerFactory emf = Persistence.createEntityManagerFactory("entity");🔧 여기서 "entity"는 persistence.xml에 등록한 persistence-unit 이름. 2. EntityManager(DB 작업 담당 직원)🧍‍♀️ 이걸로 진짜로 DB 조회, 저장, 수정, 삭제 같은 작업을 함.📌 가벼운 객체, 스레드 안전하지 않아서 ..

코딩/sparta TIL 2025.04.16

TIL 35 : 예외처리 복습

자바에서 Exception은 다시 2가지로 나뉩니다.Checked ExceptionUnChecked ExceptionChecked Exception 은 반드시 try-catch나 상위 메소드로 throws 처리를 해야 하는 예외를 말합니다. 처리를 하지 않고 컴파일을 시도하면 오류가 발생하며 실패 합니다.UnChecked Exception 은 별도 Exception을 처리하지 않아도 컴파일이 가능하고 프로그램 실행도 정상적으로 됩니다. 장점단점Checked Exception- 예외 처리 강제 → 코드 안정성 향상 - 예외 발생 가능성을 명확히 문서화- 가독성이 떨어짐 → 코드 생산성 하락 - 불필요한 예외 처리로 코드 복잡성 증가Unchecked Exception- 단순하고 가독성 높은 코드 작성 가능 ..

코딩/sparta TIL 2025.04.15

TIL 34 : HttpMessageConverter

View를 응답하는 것이 아닌, Rest API(HTTP API)로 JSON, TEXT, XML 등의 데이터를 응답 Message Body에 직접 입력하는 경우 HttpMessageConverter를 사용한다.1. SSR → @Controller + View Template → 서버 측에서 화면을 동적으로 그린다. 2. CSR → @RestController + Data → 클라이언트 측에서 화면을 동적으로 그린다. 3. 실제로는 두가지 기술이 함께 사용되는 경우가 많다. HttpMessageConverter 동작 순서HTTP 응답 메세지 Body에 데이터를 직접 입력 후 반환한다.요청 Accept Header + Controller 반환 타입ViewResolver가 아닌 HttpMessageConver..

코딩/sparta TIL 2025.04.15

Paging 공부중

필터를 쓰기 위해서는1 FilterRestrationBean 등록 필요2 doFilter 오버라이드  페이징 구현하기1. 현재 몇 페이지(page)인가?2. 한 페이지당 몇개의 게시글(size)을 보여주는가?Page page = PageRequest.of(page, size)Page se = ScheduleRepository.findAll(page); 이런식으로 쓴다고 하는데, 나는 페이지라는게 뭔지 궁금하다-_- ✅ 1. Page란? • Page는 Spring Data JPA에서 제공하는 페이징 결과 타입 • 단순히 리스트만 담고 있는 게 아니라, 페이지 번호, 전체 페이지 수, 총 데이터 개수, 현재 페이지의 데이터 목록 등도 같이 담겨 있음.{ "content": [ {일정1}, {일정2}, ....

코딩/sparta TIL 2025.04.09

CH3 Schedule Project

어려웠던 점, 캐시, 세션 개념은 알겠는데 사용 방법은 실습에 있던 메서드 3줄? 이었고저장하는 방법만 알려주고 저장한 것을 불러오고 검증하는 방법은 없었음.  이번 주차 강의도 3번 보고, 실습도 3번씩 다시 따라해서 겨우 암호화까지 함.욕심나서 댓글이랑 페이징도 하고 싶은데, 주말에 약속이 많아서 결국 못 함... 그리고 이제부터 디펜던시? application.properties 설정 관리가 어려운 것 같음. 어떤 걸 추가해야하는지 따로 찾아봐야 했음. 과제 제출 전까지 강의 반복하면서 보고 코드만 다시 작성하고 올리느라 트러블슈팅 작성도 못함...실습으로 해결이 가능했던 것 같아서(페이징, 댓글은 안해봐서 모르지만) 크게 기억에 남는 문제가 생각이 안남(제출하고, 주말 약속때문에 바쁜 생활 하다가..

코딩/sparta TIL 2025.04.04

TIL 32 : JPA, Spring Data JPA

RDB(Relational Database) : 관계형 데이터베이스는 키와 값들의 간단한 관계를 테이블화 시킨 매우 간단한 원칙의 전산정보 데이터베이스RDBMS(Relational Database Management System) : 관계형 데이터베이스를 생성하고 수정하고 관리할 수 있는 소프트웨어 패러다임 불일치 문제란?간단하게, 코드로 DB를 CRUD하려고 하는데✔️ DB는 “표(table)” 중심✔️ Java는 “객체(object)” 중심 → 이 둘은 구조 방식이 달라서 코드랑 DB가 자연스럽게 연결되지 않는 문제가 생김.이걸 바로 패러다임 불일치(Paradigm Mismatch) 라고 함! 💡 그래서 이걸 해결하려고 나온 게?✅ JPA (Java Persistence API)→ 객체와 테이블 사..

코딩/sparta TIL 2025.04.01

TIL 31 - 2 : Token, JWT, Filter

TokenWeb Application이나 API에서 인증(Authentication)과 인가(Authorization) 과정에서 사용되며 사용자 또는 시스템의 신원과 권한을 증명하고 요청의 유효성을 검증하는 데 사용되는 디지털 문자열이다. Token을 사용하는 이유Token은 서버가 아닌 클라이언트에 저장되어 서버의 부담을 덜 수 있다.Cookie는 웹 브라우저에만 존재하여 모바일 앱 등의 다양한 클라이언트에서 인증을 처리할 수 없다.Token 방식은 Stateless를 기반으로 하여 확장성이 뛰어나다.인증된 사용자임을 확인하기 위한 고유한 서명을 포함하여 위조된 요청인지 확인할 수 있다. Token 동작순서Token 생성 시 사용자의 고유한 정보를 포함한다.데이터베이스에 접근하지 않고 Token의 유효..

코딩/sparta TIL 2025.03.31

TIL 31 - 1 : Cookie(쿠키), Session(세션)

🍪 쿠키를 사용하는 이유로그인 같은 상태 정보를 유지하기 위해 활용한다.웹브라우저 쿠키 찾아보기 브라우저 개발자도구(F12) → Application → Cookies서버에 전송하지 않고 브라우저에 단순히 데이터를 저장하고 싶다면 Web Storage(localStorage, sessionStorage)를 사용하면 된다. 하지만 보안에 취약하기 때문에 주민번호와 같은 민감정보를 저장하면 안된다. 동작 방식더보기1. Set-Cookie로그인시 전달된 ID, Password로 User 테이블 조회하여 일치여부 확인일치한다면 Set-Cookie를 활용해 Cookie에 사용할 값 저장Cookie는 보안에 취약하다. 2. 로그인 이후 요청 : Cookie 로그인 이후에는 모든 요청마다 Request Header..

코딩/sparta TIL 2025.03.31