Lombok이란? Lombok(롬복)은 Java 라이브러리로 반복되는 getter, setter, toString 등의 메서드 작성 코드를 줄여주는 코드 다이어트 라이브러리이다. ombok은 여러가지 어노테이션을 제공하고 이를 기반으로 코드를 컴파일과정에서 생성해 주는 방식으로 동작하는 라이브러리입니다. 즉 코딩 과정에서는 롬복과 관련된 어노테이션만 보이고 getter와 setter 메서드 등은 보이지 않지만 실제로 컴파일된 결과물(.class)에는 코드가 생성된다. JPA(Java Persistence API)란? Java 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용하는 인터페이스 모음 JPA는, SQL을 쓰지 않고 데이터를 생성, 조회, 수정, 삭제할 수 있도록..
.domain 패키지 내의 Timestamped @Getter @MappedSuperclass @EntityListeners(AuditingEntityListener.class) public abstract class Timestamped { @CreatedDate private LocalDateTime createdAt; @LastModifiedDate private LocalDateTime modifiedAt; } 1. @Getter 선언. 2. @MappedSuperclass로 자동으로 컬럼 인식 3. @EntityListeners로 생성, 변경 시간 자동으로 업데이트 Application.java @EnableJpaAuditing @SpringBootApplication public class W..
클라이언트공격 공격자의 추적을 줄이려면 제 3자 쿠키를 금지 인터넷 추적에 사용되는 소프트웨어인 트래커 비활성화 자바스크립트 차단 스팸 해킹된 개인 컴퓨터에서 전송되고 시스템 손상과 작동 방해 악성코드를 설치하는 공격에 취약해짐. 피싱 소셜 엔지니어링: 사람들 간의 기본적인 신뢰를 기반으로 사람을 속여 비밀 정보를 획득하는 기법 스피어 피싱(정확한 표적 공격) 스파이웨어 컴퓨터에서 실행되면서 사용자에 대한 정보를 다른 곳으로 보내는 프로그램 설치된 소프트웨어의 업데이트를 자동 확인하는 것도 스파이 웨어의 일종 랜섬웨어(ransomware) ransom: 몸값이라는 뜻 컴퓨터에 있는 콘텐츠를 암호화하여 복호화 비밀번호에 대한 금액, 댓가를 지불하지 않으면 사용할 수 없게하는 공격 스케어웨어(scarewar..
스프링 실행시 패키지 위치가 매우 중요하다. controller 패키지를 com.example 파일 밖으로 빼놓아서 실행이 안 돼 고생했다. @PostMapping("/api/persons") public Person createPerson(@RequestBody PersonRequestDTO requestDTO){ Person person = new Person(requestDTO); return personRepository.save(person); // } repository의 save 함수는 입력받은 인스턴스를 리턴한다. @Transactional // SQL 쿼리가 일어나야 함을 스프링에게 알려줌, 자동으로 sql에 저장 public Long update(Long id, CourseRequest..
이번 주차의 핵심 요청에 따라 눈에 보이는 것 또는 데이터를 제공해주는 스프링 서버 만들어보기 API란? 은행 창구와 같은 하나의 약속이다. 정해진대로 요구를 하면 정해진 결과물을 돌려주는 창구 https://www.naver.com/ -> naver.com 이라는 이름의 서버에 있는 "/" 창구에 요청을 보낸 것 클라이언트가 정한대로 서버에게 요청(Request)을 보내면 서버가 요구사항을 처리하여 응답(Response)를 반환 정적 변수 & 정적메소드(Static method란?) static 키워드는 프로그래밍시 공유의 목적으로 사용한다. 정적 메소드는 인스턴스를 선언할 필요 없이 클래스를 이용하여 호출한다. public class Prac { public static void printInfo()..
백트래킹(backtracking)이란?: 해를 찾는 도중 해가 아니어서 막히면, 되돌아가서 다시 해를 찾아가는 기법 깊이 우선 탐색(DFS)이란? (37번, 소수 만들기) 출처:https://gmlwjd9405.github.io/2018/08/14/algorithm-dfs.html [알고리즘] 깊이 우선 탐색(DFS)이란 - Heee's Development Blog Step by step goes a long way. gmlwjd9405.github.io 학교 자료구조 시간에 DFS/BFS를 배웠음에도 불구하고 아래 코드를 이해하기 굉장히 어려웠다.. 알듯말듯 하면서 또 이해가 안가고. 콘솔에 어떻게 찍어야할지도 몰라서 일일이 손으로 다 해봤다. public int solution(int[] nums)..
Arraylist를 int[]로 변환 list = arylist.stream().mapToInt(i -> i).toArray(); int[] 를 Hashset으로 변환 Set set = new HashSet(Arrays.stream(nums).boxed().collect(Collectors.toList())) Set을 int[]로 변환 set.stream().sorted().mapToInt(Integer::intValue).toArray(); set.stream().sorted().mapToInt(i -> i).toArray(); StringBuilder - java.lang.StringBuilder String 객체는 변경 불가능하다. 한 번 생성되면 내용을 바꿀 수 없단 뜻이다. 따라서 하나의 문자열..
미니 프로젝트 회고 https://minji6119.tistory.com/10 TIL220511 안하던 짓을 붙잡고 하려다 보니 몸에서 과부하가 생긴건지 감기에 눈병에 손목까지.. 아프지 않은 곳이 없다. 머리는 멍 하고 코드는 안 풀리고.. 우여곡절 끝에 1주차 미니 프로젝트가 끝났다 minji6119.tistory.com JWT와 API를 미니 프로젝트 하면서 그렇게 많이 사용했는데 막상 정리를 하려고 하니 어떻게 사용했는지 가물가물하다. 쿠키/세션 방식보다 더 보안성이 좋다는 정도밖에 모른다. https://brunch.co.kr/@jinyoungchoi95/1 JWT(Json Web Token) 알아가기 jwt가 생겨난 이유부터 jwt의 실제 구조까지 | 사실 꾸준히 작성하고 싶었던 글이지만 JW..