본문 바로가기
  • 시 쓰는 개발자

Spring16

프로젝트 회고 - 나만의 위키 만들기 공부 기간 : 2024.01.22. ~ 2024.02.23. (조금씩 기능 추가하고 UI 바꿔가며 진행중) Tool : spring , spring boot , mysql , mobaxterm , AWS lightsail , filezilla , Linux ubuntu ... 등 동기 : 내가 속한 동아리에 동아리 부원들이 노는 사이트가 있는데, 동아리 전용 나무위키 같은 개념이었다. 그 범위를 더 축소시켜서 나와 내 친구들만 쓰는 나무위키가 있으면 좋겠다는 생각을 했다. 그래서 처음에는 나무위키 클론 코딩을 해보고 싶었는데, 생각보다 정보가 잘 나오지 않아서 1달 안에(개강 전에) 프론트엔드도 없이 혼자서 시도하기는 무리였다. 백엔드 기능만 하는 거라면 어찌저찌 해보겠지만 프론트에 대해 무지했기에..... 2024. 2. 23.
JPA repository 쿼리문 코드 참고 (+jpa가 만드는 쿼리문 확인하기) jump to spring boot 교재를 참고하였습니다. jpa repository 메소드가 만드는 쿼리문 확인하기 → application.properties 혹은 yml에 아래 문구 추가하기 !! spring.jpa.properties.hibernate.format_sql=true spring.jpa.properties.hibernate.show_sql=true Question findBySubjectAndContent(String subject, String content); 이런 코드를 쿼리로 바꾼다면 아래 사진에서 where절같이 바뀌게 된다. JPA repository 메소드 이름 짓기 그렇다면 repsository의 메소드 명을 잘 지어야한다는 감이 올것이다. 엔티티에 subject, co.. 2024. 1. 24.
spring 개발시 RestApi 방식과 뷰템플릿방식의 차이 스프링 공부를 하다보면 restapi, model, json, 뷰템플릿... 등의 이야기를 자주 듣게 되는데 이것들이 어떤 때에 사용되는 단어들인지 모르는 경우가 많다. 각각의 방식에 따라 데이터를 주고받는 형식이 다르고, 이것을 모른다면 Postman으로 기능 테스트를 진행할 때에도 올바른 기능일지라도 데이터 형식 설정을 잘못해서 오류가 나는 경우가 많아서, 이번 기회에 이것들을 간단하게 정리해보려고 한다. RestApi와 JSON https://100won-developer.tistory.com/21 API란 무엇인가 (+REST API) API란? sw가 다른 sw로부터 지정된 형식으로 요청하거나, 명령을 받을 수 있는 수단. ▶ 어떤 기술이나 제품이 아니라 “형식”이기 때문에 어떤 언어나 어떤 프.. 2023. 3. 8.
PUT과 PATCH의 차이점 PUT과 PATCH는 모두 HTTP 메소드 중에서 데이터를 수정하기 위한 메소드이다. 둘 다 수정을 담당하는 메소드라서 어떤 것을 언제 사용해야하는지 헷갈리는데, 일반적으로 PUT과 PATCH는 다음과 같이 분류한다. PUT은 전체 엔티티를 업데이트하기 위해 사용되는 메소드이다. 전체를 교체하기 때문에 PUT을 쓸 때에는 모든 필드가 필요해서 클라이언트가 업데이트하고자 하는 리소스의 전체 표현을 제공해야 한다. 만약 PUT을 쓸 때 필드의 전체가 아니라 일부만을 제공한다면 제공한 일부를 제외하고 나머지 모든 필드값이 NULL이 되거나 default값이 되므로 주의해야한다. → 그래서 이런 실수를 방지하고자 일부러 PATCH만 쓰도록 개발자들끼리 약속하기도 한다. PATCH는 부분적인 업데이트 즉 엔티티의.. 2023. 2. 19.
spring security - 인증 방식에 따른 차이 (세션과 토큰방식) 세션 기반 자격 증명 방식이란, 인증된 사용자의 정보를 서버 측에서 세션 형태로 하여 세션 저장소에 저장하는 방식을 말함. 클라이언트의 request에는 서버로 전달되는 쿠키가 있는데 이 쿠키 안에 세션 id가 담겨서 전달됨. 그리고 이걸 서버에서 관리함. 즉, 인증된 사용자의 정보를 서버의 세션 저장소에서 관리하고 클라이언트에겐 해당 사용자를 구분할 세션 Id만 전달 서버에서 세션id 생성(고유한 값) → 클라 쿠키에 저장돼서 request시 쿠키랑 같이 서버로 전송해서 인증된 사용자임을 증명 // 세션 데이터가 많아질수록 서버 부담 증가 세션 id만 클라에서 사용 → 적은 네트워크 트래픽 서버에서 세션 정보 관리 → 보안성 유리 서버 여러개로 확장시 불리 → 세션 불일치 문제 발생 가능 (확장한 서버.. 2023. 1. 3.
spring security란 SpringSecurity spring security는 인증과 인가에 초점을 맞춘 프레임워크이다. 인증(Authentication): 해당 사용자가 본인이 맞는지를 확인하는 절차 인가(Authorization): 인증된 사용자가 요청한 자원에 접근 가능한지를 결정하는 절차 스프링 시큐리티의 특징 서블릿 api 통합 spring web mvc와의 선택적 통합 인증과 권한 부여를 모두 포괄적이고 확장 가능한 지원 세션 고정, clickjacking, 사이트 간 요청 위조 등과 같은 공격으로부터 보호 ▶ 웹 기반 인증과 인가를 편하게 구현하기 위함. spring security Filter 필터가 굉장히 많아서 우리에게 필요한 필터만 골라 구현해 사용한다. 로그인 인증 구조 사용자가 아이디 비밀번호로 로그인.. 2022. 11. 21.
MVC패턴과 MVC패턴을 지키는 법 MVC패턴과 MVC패턴을 지키는 법 * MVC = 유지보수가 편해지도록 하는 코드 구성 방식. M은 Model, V는 View, C는 Controller를 의미. 흐름 사용자가 구글에 단어를 검색 단어에 대한 검색 결과를 달라고 Model에게 요청 모델이 검색결과 데이터를 찾아서 Controller에게 전달 컨트롤러가 View에게 받은 검색 결과 데이터를 전달 뷰는 UI에 검색결과 데이터를 넣어서 사용자에게 이쁘게 보여줌 MVC의 역할 모델 : 데이터와 관련된 일을 함 컨트롤러 : 모델과 뷰 사이에서 중개자 역할을 함 뷰 : 사용자에게 보여지는 부분을 담당 (추가) Model: 소스 코드로 특정 동작이 수행되는 파트 View: 우리(사용자)가 보는 화면이다. Controller: view의 요청을 받아 .. 2022. 10. 20.
반응형