본문 바로가기

분류 전체보기

Hibernate 부모-자식 연관관계 삭제 문제 개요조직-부서 관계를 가진 Entity를 개발 중에 발생한 문제였습니다.조직은 여러 개의 부서를 가질 수 있는 다대 다 관계의 모델을 구성했는데, 조직이 삭제되면 하위에 있는 모든 부서가 삭제되어야 하는 기능입니다. 1234@OneToMany(mappedBy = "organization", cascade = {CascadeType.MERGE}, fetch = FetchType.EAGER)@OnDelete(action = OnDeleteAction.CASCADE)@JsonBackReferenceprivate List departments = new ArrayList();Colored by Color Scriptercs 위와 같이 구현을 완료하고 삭제 버튼을 클릭하는 순간 DataIntegrityViolat..
React Native Navigation을 이용해 페이지 전환하기 개요이 글에서는 모바일 엡에서의 페이지 전환을 위해 react-navigation (v3) 라이브러리를 이용해 보도록 하겠습니다. 라이브러리 설치프로젝트 루트에서 다음 명령어를 입력해 라이브러리를 추가해 주세요. 12$ npm install --save react-navigation$ npm install --save react-native-gesture-handlercs 다음으로 설치된 라이브러리를 링크합니다. 1$ react-native linkcs 네비게이션의 종류1. createStackNavigatorView를 Stack으로 쌓는 일반적인 네비게이터 입니다. 2. createSwitchNavigator로그인, 회원가입 등을 할 때 (사용자가 임의로 뒤로가기 등을 할 수 없는) 사용하면 유용한 네..
이벤트 다루기 개요본문에서는 React Native에서 Button 등의 이벤트를 다루는 방법을 안내한다. Button UI 생성하기먼저 Button 요소를 이용하기 위해 먼저 Button을 import 해준다. 12import React, {Component} from 'react';import {Platform, StyleSheet, ..., Button} from 'react-native';cs 다음으로 클래스의 render() 함수를 통해 버튼 요소를 추가한다. 1234567891011121314export default class App extends Component { constructor(props) { super(props); this.state = { username: '' }; } render() ..
run-ios 명령어 입력 시 unable to find utility "instruments" 에러 처리 방법 개요react-native 설치 후 run-ios 명령어를 이용해 앱을 실행하려 하는 경우 다음과 같은 에러를 만날 수 있다. 1234567Found Xcode project TestProject.xcodeprojxcrun: error: unable to find utility "instruments", not a developer tool or in PATH Command failed: xcrun instruments -sxcrun: error: unable to find utility "instruments", not a developer tool or in PATHColored by Color Scriptercs 처리 방법1. Xcode의 설정 변경기본적으로 Xcode를 설치하면 Command-Li..
Mac 에서 Node 완전삭제 후 재설치하기 개요시스템을 관리하다 보면 예기치 못한 상황들이 종종 발생하기 마련이죠.이 글에서는 Mac 환경에서 Nodejs를 완전히 삭제 후 다시 설치하는 방법을 안내합니다. 삭제하기(brew)다음 명령어를 이용해 기존 설치되어 있던 Node를 제거합니다. 123456brew uninstall node; # 정상적으로 제거되지 않는 경우 'brew uninstall --force node'brew cleanup;# 관련 파일 모두 제거rm -f /usr/local/bin/npm /usr/local/lib/dtrace/node.d;rm -rf ~/.npm;Colored by Color Scriptercs 명령어를 통해 파일을 제거 할 수 없는 경우 아래와 같이 강제로 파일을 제거해줍니다. 123sudo rm -rf ..
Spring JPA Envers 를 이용해 데이터의 변경이력 관리하기 개요프로젝트를 수행하다 보면 삭제된 데이터를 어떻게 처리할 지에 대한 방법의 차이가 존재합니다.Envers는 데이터의 추가, 수정, 삭제에 대한 모든 이력을 Entity 기준으로 자동으로 관리해 주기 때문에 이러한 고민을 덜어주는 아주 훌륭한 라이브러리입니다. 적용하기에 앞서가령 아래와 같은 EventCode라는 엔티티가 있다고 가정을 해 봅시다.이 프로젝트에서는 삭제 버튼을 눌러 엔티티를 삭제하면 DELETE 구문이 아닌 UPDATE 구분을 이용해 removed라는 필드를 true로 변경합니다. 123456789101112131415161718192021@Getter@Setter@Entity@Table(name = "event_code", uniqueConstraints = @UniqueConstrai..