본문 바로가기

내일배움캠프/Today I Learned

(47)
[TIL] 나의 서른 한번째 회고록 보통 서버가 클라이언트 인증을 확인하는 방식은 대표적으로 쿠키, 세션, 토큰 3가지 방식이 있다. 예전에 배웠을 때는 쿠키, 세션 이렇게 두가지 개념만 기본으로 사용해보고 지나갔던 경험이 있다. 개인과제를 하면서 JWT를 처음 접해보았다. JWT?는 뭐지? 처음들어봐서 정확하게 JWT란 무엇일까? 궁금해졌다. JWT 란? JWT(JSON Web Token)란 인증에 필요한 정보들을 암호화시킨 JSON 토큰을 의미한다. 그리고 JWT 기반 인증은 JWT 토큰(Access Token)을 HTTP 헤더에 실어 서버가 클라이언트를 식별하는 방식이다 JWT는 JSON 데이터를 Base64 URL-safe Encode 를 통해 인코딩하여 직렬화한 것이며, 토큰 내부에는 위변조 방지를 위해 개인키를 통한 전자서명도 ..
[TIL] 나의 서른번째 회고록 이번에 게시판 과제를 upgrade하고 있는데 이 과정 속에서 PostMan이라는 프로그램을 처음 접해봤다. 이 포스트맨을 처음에 사용할 때 어떻게 하는거지? 이리저리 눌러보고 만져보고 했는데 입문자인 나에게는 생각보다 프로그램을 다루기가 어려웠던 것 같다. 그래서 유튜브강의도 들어보고 다른 팀원들한테도 물어보면서 사용법을 익혔다. @ 참고 : https://chunggaeguri.tistory.com/entry/%ED%8F%AC%EC%8A%A4%ED%8A%B8%EB%A7%A8-POSTMAN-%EC%82%AC%EC%9A%A9%EB%B2%95 [POSTMAN] 포스트맨 (POSTMAN) 사용법 포스트맨(POSTMAN) REST API 설계 개발, 테스팅을 할 수 있는 GUI 툴로 개발 생산성을 높여주는 프..
[TIL] 나의 스물아홉번째 회고록 JPA심화 📚JPA란? JPA란(Java Persisitence API) 어플리케이션과 JDBC 사이에서 동작하는 API *JPA 개념에서 빠지지 않는'ORM (Object Relational Mapping)' 기술을 사용한다 ORM은 객체와 테이블을 매핑해주는 역할을 함. - 왜 JPA를 사용해야 하는지? 1) 생산성 : JPA를 자바 컬렉션에 객체를 저장하듯 JPA에게 저장할 객체를 전달. INSERT SQL을 작성하고 JDBC API 사용하는 지루하고 반복적인 일을 JPA가 대신 처리해준다. CREATE TABLE같은 DDL문 자동 생성 데이터베이스 설계 중심의 패러다임을 객체 설계 중심으로 역전 2) 유지보수 : 엔티티에 필드 추가시 등록, 수정, 조회 관련 코드 모두 변경 JPA를 사용하면 이런..
[TIL] 나의 스물 여덟번째 회고록 error message : Required request parameter 'id' for method parameter type Long is not present 게시판 비밀번호 체크기능을 구현하다가 위의 에러가 발생하였다. 파라미터도 넘긴 id값이 Controller로 넘어가지 않는다는? 아니면 null값이라는? 말 같다. form태그에서 submit을 통해 파라미터 id값을 넘기는데 넘어가지 않는 듯 하다. 에러 관련 정리할 내용 HTML에서 form태그를 통해 method가 POST로 전송이 되었고 따라서 @RequestParam으로 값을 받을 수 있다 GET 메서드, @GetMapping을 통해 localhost:8080?userId=1234&name=username 과 같은 형태로 전송되어..
[TIL] 나의 스물 일곱번째 회고록 오늘은 게시판 프로젝트를 수정해보면서 Tymeleaf를 처음 접하게되었다. 현재 타임리프를 사용하여 form태그로 비밀번호 일치 확인하는 로직을 작성하고 있는데 생각보다 쉽지 않아서 골머리를 싸고있다. 그래도 Thymeleaf를 사용함으로서 코드가 확실히 줄어들고 한눈에 알아보기 쉬워서 유용하게 쓸 것 같다. Thymeleaf란? '템플릿 엔진'의 일종. html 태그에 속성을 추가해 페이지에 동적으로 값을 추가하거나 처리할 수 있다. Thymeleaf 문법 대부분의 html 속성을 th:xxx 로 변경할 수 있다. ex: th:text="${변수명}" 표현 설명 예제 @{ ... } URL 링크 표현식 th:href="@{/css/bootstrap.min.css}" th:href="@{/{itemId}..
[내배캠] 스물 여섯번째 회고록 스프링(Spring)에서 자주 사용하는 Annotation 개념 및 예제 정리 Annotation은 클래스와 메서드에 추가하여 다양한 기능을 부여하는 역할을 한다. Annotation을 활용하여 Spring Framework는 해당 클래스가 어떤 역할인지 정하기도 하고, Bean을 주입하기도 하며, 자동으로 getter나 setter를 생성하기도 한다. 특별한 의미를 부여하거나 기능을 부여하는 등 다양한 역할을 수행할 수 있으며, 이러한 Annotation을 통하여 코드량이 감소하고 유지보수하기 쉬우며, 생산성이 증가된다고 한다. Spring의 대표적인 Annotation @Component 개발자가 생성한 Class를 Spring의 Bean으로 등록할 때 사용하는 Annotation입니다. Spring..
[내배캠] 나의 스물 다섯번째 회고록 [문제] 정수 배열 array가 매개변수로 주어질 때, 가장 큰 수와 그 수의 인덱스를 담은 배열을 return 하도록 solution 함수를 완성해보세요. import java.util.Arrays; import java.util.stream.IntStream; class Solution { public int[] solution(int[] array) { int[] answer = new int[2]; answer[0] = Arrays.stream(array).max().getAsInt(); answer[1] = IntStream.range(0, array.length) .filter(i -> answer[0]==(array[i])) .findFirst() .orElse(-1); return answ..
[내배캠] 나의 스물네번째 회고록 👉문제 ) STUDENT 테이블에서 s1 수강생을 삭제했을 때 EXAM에 있는 s1수강생의 시험성적과 MANAGER의 managerA가 관리하는 수강생 목록에 자동으로 삭제될 수 있도록 하세요. ALTER, DROP, MODIFY, CASCADE 를 사용하여 EXAM, MANAGER 테이블을 수정합니다 답안) ALTER TABLE EXAM DROP CONSTRAINT exam_fk_student_code; -> EXAM 테이블의 exam_fk_student_code 컬럼에 관하여 CONSTRAINT(무결성 제약조건) 삭제 ALTER TABLE EXAM ADD CONSTRAINT exam_fk_student_code FOREIGN KEY(student_code) REFERENCES STUDENT(stude..