목록전체 글 (44)
soft IT life
kotlin은 null safety 언어이기 때문에 null을 핸들링 할 수 있도록 여러 키워드가 있다.그중에는 ?: ?=가 있는데 이 둘의 차이를 정확히 이해하지 못해 애먹은 경험을 바탕으로 이슈를 정리해본다. ?:엘비스연산자.null 값이 들어오는 경우에 null safe한 연산을 위해 사용됨.왼쪽 값이 null일 경우에 오른쪽 값을 반환, 할당한다. 예시fun write(name:String?){ val myName = name ?: "KimYang" }nullable한 name이 넘어왔다. 따라서 Null이 넘어올 수도 있다.이런 경우를 대비해서 만약 name에 null이 넘어오는 경우 ?: 오른쪽 값을 할당하여 주는 것이다. ?=왼쪽 프로퍼티나 매개변수에 아무런 값이 전달되지 않는 경우에 오른..
(spring boot 빌드 & 컴파일 순서에 대해서 공부해볼 것 !) 특정 데이터의 타입을 수정하고 새로 빌드를 하였더니 빌드 단계에서 type mismatch 에러가 계속 발생하였다.type mismatch: inferred type is string? but string was expected 문제 발생 지점.override fun editActivity(data: Activity) { record.description = data.description} 대입하려는 주소의 값도 모두 Nullable 하게 선언해두었는데도 계속 에러가 발생했다.Nullable한 데이터를 Nonull 타입에 대입하려고 한다고 에러를 뱉어 냈고 몇시간 동안 무슨 문제일까 고민했다.도대체 왜 ! nullable로 선언하고 ..

소프트웨어 설계요구사항 개발요구공학 : 이해관계자 사이의 요구사항 관련 의사소통요구사항 : 도출 -> 분석 -> 명세 -> 확인미들웨어의 종류RPC - 원격프로시저 호출MOM - 메세지 지향 미들웨어(빠른 응답속도 필요하지 않음)ORB - 다른 시스템의 프로그램을 네트워크를 통해 호출 가능하게 해줌DB - JDBC ...TP모니터WAS - 웹 서버의 동적 기능 수행ESB방법론애자일 방법론XP - 의사소통, 피드백, 존중, 용기, 단순성스크럼구조적 방법론Use Case 다이어그램사용자(Actor)의 관점에서 기능과 상호작용 등의 관계를 표현구성요소 - 시스템, 액터, 유즈케이스(기능), 관계관계연관 포함 - 하나의 기능이 실행될 때 포함 관계의 케이스는 반드시 실행되어야 함확장 - " 특정상황에서 실행되어..

[Kotlin, SpringBoot로 웹 서비스 개발, 기능 테스트 중에 유효성 검사 처리가 제대로 적용되지 않는 이슈 발생] @PatchMapping("/{activityResultKey}/evaluation") fun editAssignmentEvaluation( @Valid @RequestBody data: AssignmentEvaluationDTO, ) data class AssignmentEvaluationDTO( @field:NotNull(message = "평가점수는 필수 항목입니다.") @Min(value = 0, message = "평가점수는 0 이상의 값이어야 합니다.") @Max(value = 100, message = "평가점수는 100 이하의 값이어야 합니다.") val score..
테이블 권한 테이블에 대한 권한은 각 테이블의 소유자가 가지고 있기 때문에 소유자로부터 권한을 받지 않으면 다른 유저의 테이블에 접근할 수 없다. Nested Loop 방식의 조인 절차 1.선행 테이블에서 조건을 만족하는 첫 번째 행을 찾음 2.선행 테이블의 조인 키를 가지고 후행 테이블에 조인 키가 존재하는지 찾으러 가서 조인을 시도 3.후행 테이블의 인덱스에서 선행 테이블의 조인 키가 존재하는지 확인 4.인덱스에서 추출한 레코드 식별자를 이용하여 후행 테이블을 액세스 Hash Join - cpu 연산이 많이 발생되는 조인으로 조인할 때 선행 테이블의 크기가 작아야 유리한 조인이다. - 조인 칼럼의 인덱스가 존재하지 않아도 사용할 수 있다. - 해시 함수를 이용하여 조인을 수행하기 때문에 '='로 수행..

변경된 출제 범위 2024년 제 52회부터 SQLD 시험 범위가 변경되었다. 변경된 시험 범위에 대한 자세한 내용은 아래 링크 참조 https://www.dataq.or.kr/www/board/view.do?bbsKey=eyJiYnNhdHRyU2VxIjoxLCJiYnNTZXEiOjU0MzI1MX0=&boardKind=notice 데이터자격시험 www.dataq.or.kr 변경된 범위 자세한 출제 범위 배점 및 문항수 기존에는 단답식 주관식도 존재하였으나 52회부터 모든 문제가 객관식 문항으로 변경되었음 중요한 키워드 중심으로 요약 정리 ! 데이터 모델링의 이해 데이터 모델의 이해 모델링 특징 추상화 : 다양한 현상을 일정한 양식에 따라 표현 단순화 : 복잡한 현상을 쉽게 이해할 수 있게 표현 명확화 : ..
이슈 사항 Intellij 사용중 갑자기 비정상적으로 종료되는 경우가 있다. 코딩하다가 그러면 매우 당황스러운데, 셧다운 되는 이유는 모르겠다. 문제는 Intellij가 사용하던 프로세스가 종료되지 않고 그대로 살아 있어, 프로그램을 다시 작동시키면 이미 프로세스를 사용중이라고 하며 Intellij가 열리지 않는다 !!! 맥을 사용하는지라 프로세스를 강제로 종료시키는 것도 복잡하다... 어떻게 해야할까 ? 해결 터미널을 연다 'ps' 명령어 사용 : Process State의 약자로 현재 실행 중인 프로세스와 상태를 출력하는 명령어 ps -A -> 모든 프로세스 출력 Intellij 강제종료 후 재실행 시에 뜨는 에러 박스내에 프로세스 번호가 출력된다. 해당 번호를 확인하여 ps -A에서 확인해본다. p..
참고 https://dev.mysql.com/doc/refman/8.0/en/insert-select.html MySQL :: MySQL 8.0 Reference Manual :: 13.2.7.1 INSERT ... SELECT Statement 13.2.7.1 INSERT ... SELECT Statement INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [PARTITION (partition_name [, partition_name] ...)] [(col_name [, col_name] ...)] { SELECT ... | TABLE table_name | VALUES row_constructor_list } [ON DUPLI dev...