https://arikong.tistory.com/15 해쉬 알고리즘을 이용해서 일정한 길이의 암호화된 문자열을 생성하는 일을 Hashing이라고 하고그 Hashing 이후의 값을 Hash 값Hash 값을 만들어내는 함수를 Hash 함수라고 합니다.원본으로 되돌릴 수 없다는 특징이 있습니다. 해싱임의의 길이 데이터를 입력받아 고정된 길이의 출력값(해시값 또는 다이제스트)으로 변환하는 과정. 메시지 다이제스트 (Message Digest)해싱 과정을 거쳐 생성된 결과물로, 원본 메시지를 대표하는 짧고 고유한 값(큰 데이터가 짧고 '날씬해진다'고 하여 메시지 '다이제스트(요약본)'라고 불림.) 해싱은 '방법', 메시지 다이제스트는 '결과물'입니다.'해싱 알고리즘을 통해 메시지 다이제스트를 생성한다'고 표현할..
패스 파라미터url 경로에 / 뒤에 붙게된다GET /users/123 라면@GetMapping("/users/{id}")fun getUser(@PathVariable id: Long): UserResponse { ...}물론 여러개를 쓸 수도 있다/users/{userId}/orders/{orderId}/shops/{shopId}/products/{productId}/domains/{domainType}/items/{itemId}@GetMapping("/users/{username}/{id}")fun getUserDetail( @PathVariable username: String, @PathVariable id: Long): UserDetailResponse { ...}쿼리 파라미..
Spring Boot에서 JPA 쓸 때 작업 흐름 1) Entity 작성@Entitydata class FranInfoEntity( @Id val id: Long, val name: String)이 엔티티의 val들이 있어야... findBy~같은게 동작하게 된다. 2) Repository 인터페이스 정의interface FranInfoRepository : JpaRepository { fun findByName(name: String): FranInfoEntity? @Query("select f from FranInfoEntity f where f.status = :status") fun findActive(status: String): List}interface로 만들면 ..
ping은 뭐고 curl은 뭐고 telnet은 뭘까일단 공통점이 있다. 네트워크 통신이 가능한지 확인하는 도구라는 것.그러나 작동방식이 다른데...pingICMP 프로토콜을 사용한다 (TCP, HTTP가 아님)회수율을 측정한다.언제 사용할까?인터넷 연결 자체가 되는지 확인할 때DNS가 잘 동작하는지 확인할 때서버가 살아있는지 확인할 때한계점ICMP는 방화벽에서 차단될 수 있다.포트 상태는 알 수가 없다 몰?루? (443포트가 죽어있어도 ping은 성공할 수 있음)핑은 아이피가 아니라 도메인 주소로도 전송할 수 있다.ping google.com이 명령을 입력할 경우 컴퓨터는 먼저 DNS를 찾아본다. google.com을 8.8.8.8(google의 아이피 주소)로 치환하고, 이 주소로 ICMP ping 요..
takeIf 는 조건이 true면 값 유지, false면 null 로 만든다.→ map을 사용했기 때문에 요소 수는 그대로 3개가 유지됨.→ 원소 형태만 바뀌는 것일 뿐, 필터링은 되지 않는다.val regDates = infos .filter { it.id in actvieFranInfoIds } .map { it.regiDate }val months = List.mapNotNull { it?.month } .toSet() // 중복 제거 mapNotNullnull이 나오지 않는 값들로만 list를 구성해서 반환해주는 함수. (반환 타입이 List) any, all, none 같은 boolean 연산용 함수any 는 “조건을 만족하는 값이 하나라도 있는지” 검사할 때 쓰고,map 은 “리스..
몽고DB의 칼럼은 ISO Date로 지정되어 있었는데칼럼과 맵핑되는 data class 파일에 해당 칼럼을 LocalDateTime이 아닌 String으로 지정해서 발생한 문제였다... @Document(collection = "myTable")@ConditionalOnProperty( prefix = "spring.data.mongodb", name = ["enabled"], havingValue = true, matchIfMission = false)data class MyTableView( @Id val id: ObjectId? = null, val regDate: String? = null, // 에러코드 val regDate: LocalDateTime? = nul..