전체 글 (35) 썸네일형 리스트형 두 수의 합 두 수의 합문제는 아래와 같습니다.https://leetcode.com/problems/two-sum/description/1. Two SumGiven an array of integers nums and an integer target, return indices of the two numbers such that they add up to target. You may assume that each input would have exactly one solution, and you may not use the same element twice. You can return the answer in any order. Example 1:Input: nums = [2,7,11,15], target = 9 O.. Swift In Depth를 읽고 Swift In Depth는 Swift 언어스러운 코드를 짜고 싶어 읽기 시작한 책입니다. 책이 번역본 없이 원서뿐이라 읽고 정리하는데 시간이 오래 걸렸지만 끝까지 읽은 후 더 큰 뿌듯함을 느꼈습니다. iOS 개발을 하며 어떤 코드를 지향할지 그리고 지양해야 할지 판단하기 어려울 때가 많은데 이런 고민을 가진 모든 분들에게 추천드립니다. 군생활을 하며 일병 1호봉부터 일병 4호봉까지 저의 개인 정비 시간을 녹여준 소중한 책입니다.아래 깃허브 링크는 책을 읽고 정리한 글입니다. 참고용으로 보시면 좋을 것 같습니다. https://github.com/Joon9750/swift-in-depth GitHub - Joon9750/swift-in-depth: Swift in depth를 읽고 정리합니다.Swift .. Map과 Deque 시간 복잡도 Map 시간 복잡도Map은 해시 테이블로 구현된 HashMap과 LinkedHashMap이 있습니다.Map은 키와 값을 하나의 쌍으로 저장하는 방식을 사용하고 엘리먼트 추가, 삭제, 조회 모두 O(1)이 소요되는 효율적인 자료형입니다. 물론 최악의 경우에는 키 충돌이 발생해 O(n)이 될 수 있지만 분할 상환 분석에 따라 시간 복잡도는 여전히 O(1)입니다. 하지만 기본적으로 HashMap은 입력 순서가 보장되지 않습니다. 이를 보완하기 위해 연결 리스트를 함께 사용하여 입력 순서를 유지한 LinkedHashMap이 있습니다.덕분에 한결 편리하게 Map을 사용할 수 있습니다. 심지어 코틀린에서는 Map의 기본 자료형은 LinkedHashMap을 사용하여 입력 순서를 보장합니다. Map을 사용한 연산의 시.. List 시간복잡도 지금부터 자바가 제공하는 자바 컬렉션 프레임워크의 리스트 시간 복잡도를 살펴보겠습니다. List를 대표하는 ArrayList와 LinkedList를 살펴보고, 빅오로 표현되는 시간 복잡도 말고도 실제 삽입과 삭제 속도도 측정해 비교해 보겠습니다. List 시간 복잡도 (ArrayList, LinkedList)연산ArrayListLinkedList인덱스 끝에 삽입O(1), 더블링 발생 시 O(n)O(1)인덱스 중간에 삽입O(n)탐색 O(n), 삽입 O(1)인덱스 끝에서 삭제 O(1)O(1)인덱스 중간에서 삭제 O(n)탐색 O(n), 삭제 O(1)조회O(1)O(n) ArrayList는 동적 배열이고, LinkedList는 연결 리스트로 구현되어 있기 때문에 위 표와 같이 같은 List 더라도 연산에 시간복잡.. Entity 삭제 시 발생하는 Referential integrity constraint violation 에러 엔티티를 삭제하는 기능을 개발하는 과정에서 Referential integrity constraint violation 에러가 발생하며 삭제되지 않는 상황이 생겼고, 이를 해결한 방법을 이야기해보려 합니다. 실제로 발생한 에러 메시지는 아래와 같습니다."could not execute statement [Referential integrity constraint violation: \"FKLLBJ31M7Y971AVM7XQG615NIY: PUBLIC.USER_CHAT_ROOM FOREIGN KEY(CHATROOM_ID) REFERENCES PUBLIC.CHAT_ROOM(CHATROOM_ID) (CAST(5 AS BIGINT))\"; SQL statement:\ndelete from chat_room whe.. orphanRemoval (고아 객체) orphanRemoval고아 객체... 번역이 조금... 그렇지만 말 그대로 부모 엔티티와 연관관계가 끊어진 자식 엔티티를 고아 객체라 부릅니다. 여기서 부모 엔티티와 자식 엔티티는 어떤 기준으로 나눌까요? 엔티티 간의 관계 설정에서 부모-자식 관계의 기준 정립은 데이터의 구조와 비즈니스 로직에 따라 달라질 수 있습니다. 대체로, 연관관계의 방향을 정할 때, 단일 엔티티(부모)가 컬렉션 타입의 여러 엔티티(자식)를 참조하는 구조에서는 ‘일대다’ 관계가 형성되며, 이때 ‘다’ 쪽에 해당하는 엔티티가 자식 엔티티가 됩니다. 연관관계의 주인과 부모-자식 관계가 혼돈될 수 있으니 주의해야 합니다. 자바 JVM에 익숙해서 참조가 끊긴 객체를 가비지 컬렉터가 자동으로 삭제하는 과정처럼 JPA에서도 부모 엔티티와 .. 그럼 모든 JPA 에러는 롤백 처리해야 할까? (트랜잭션 롤백 여부) https://praaay.tistory.com/31 JPA가 던지는 check-error를 uncheck-error로 변환하면, 트랜잭션이 rollback 될까?Respository 계층 메소드들을 예외 처리하며 JPA가 던지는 에러를 어떻게 처리해야 할지 고민이었습니다.JPA가 던지는 에러는 아래와 같이 트랜잭션을 기본적으로 롤백하는 언체크 에러도 있고, 트praaay.tistory.com위 글에 이어서 제 궁금증은 JPA가 던지는 모든 에러를 언체크 에러로 변환하여 트랜잭션 롤백하면 되지 않을까? 생각했었습니다. 어떤 처리를 하는 과정에서 문제가 발생하면 그 처리의 흔적이 데이터베이스나 캐시등에 남아있으면 안 되지 않을까라는 생각이 있었기 때문입니다. 하지만 JPA 표준에서는 '트랜잭션 롤백을 표시.. JPA가 던지는 체크 에러를 언체크 에러로 변환하면, 트랜잭션이 롤백 될까? Respository 계층 메소드들을 예외 처리하며 JPA가 던지는 에러를 어떻게 처리해야 할지 고민이었습니다. JPA가 던지는 에러는 아래와 같이 트랜잭션을 기본적으로 롤백하는 언체크 에러도 있고, 트랜잭션을 롤백하지 않는 체크 에러도 있습니다. 물론 JPA가 던지는 대부분의 에러들은 RunTimeException을 상속하는 언체크 에러로 트랜잭션이 롤백됩니다. 하지만 아래와 같이 일부 경우에는 JPA가 체크 예외를 던지게 됩니다. SQLException: JPA의 내부 구현이 JDBC를 사용하므로, SQL 문이 잘못되었거나 데이터베이스에 문제가 발생했을 때 SQLException이 발생할 수 있습니다.EntityExistsException: JPA에서 새로운 엔티티를 저장하려 할 때, 동일한 ID를 .. 이전 1 2 3 4 5 다음