728x90

분류 전체보기 419

[RN] React Navigation Setting

리액트 네이티브로 간단한 앱을 만들면서 겪었던 일을 기록합니다. 리액트 네이티브 버전 : "react-native": "0.69.2" - 리액트 내비게이션 설치 https://reactnavigation.org/docs/getting-started https://reactnavigation.org/docs/getting-started/ reactnavigation.org - 공홈을 참조해서 설치한다. - 나는 설치했더니 "@react-navigation/native": "^6.0.11" 버전이었다. - 리액트 네이티브는(iOS) 라이브러리 설치 후 ios 폴더로 이동하여 "pod install"을 해줘야 한다. - 실행을 했더니 에러 던진다. "@react-native-community/masked-vi..

[Go] 기초 - 컬렉션 (Map)

1. Map 개요 - Map은 키(Key)에 대응하는 값(Value)을 신속히 찾는 해시테이블(Hash table)을 구현한 자료구조이다 var newMap map[int]string newMap = make(map[int]string) //리터럴을 사용한 초기화 exMap := map[string]string{ "a": "apple", "b": "banana", "c": "coconut", } - Map을 사용하려면 make함수로 초기화를 꼭 해주어야 한다. - 바로 초기화도 가능하지만 나는 개발할 때 항상 make함수로 초기화를 한 후에 사용했다. 2. Map 사용 - 데이터를 추가하기 위해서는 "map변수[키] = 값" 처럼 해당 키에 그 값을 할당 - 키가 중복일 경우 마지막에 할당한 값이 기존에..

개발/Go 2022.07.22

[JPA] 객체지향 쿼리 언어 - 중급 문법

1. 경로 표현식 - .(점)을 찍어 객체 그래프를 탐색하는 것 - 경로 표현식 특징 (1) 상태 필드(state field) 경로 탐색의 끝, 탐색 X (2) 단일 값 연관 경로: 묵시적 내부 조인(inner join) 발생, 탐색 O (3) 컬렉션 값 연관 연관 경로: 묵시적 내부 조인 발생, 탐색 X (4) FROM 절에서 명시적 조인을 통해 별칭을 얻으면 별칭을 통해 탐색 가능 - 명시적 조인, 묵시적 조인 (1) 명시적 조인: join 키워드 직접 사용 select m from Member m join m.team t (2)묵시적 조인: 경로 표현식에 의해 묵시적으로 SQL 조인 발생(내부 조인만 가능) select m.team from Member m - 실무 조언 (1) 가급적 묵시적 조인 ..

[Go] 기초 - 컬렉션 (Slice)

1. 슬라이스 - 배열과 다르게 크기를 동적으로 변동이 가능하다. - Go Slice 선언은 배열을 선언하듯이 "var v []T" 처럼 하는데 배열과 달리 크기는 지정하지 않는다. 예를 들어, 정수형 Slice 변수 a를 선언하기 위해서 "var a []int" 처럼 선언할 수 있다. - make 함수를 통해서 선언이 가능하다. - make() 함수의 첫번째 파라미터에 생성할 슬라이스 타입을 지정하고, 두번째는 Length (슬라이스의 길이), 그리고 세번째는 Capacity (내부 배열의 최대 길이)를 지정하면, 모든 요소가 Zero value인 슬라이스를 만들게 된다. 여기서 만약 세번째 Capacity 파라미터를 생략하면 Capacity는 Length와 같은 값을 갖는다. 그리고 슬라이스의 길이 ..

개발/Go 2022.07.21

[JPA] 객체지향 쿼리 언어 - 기본 문법

김영한님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 정리 1. JPQL - JPQL은 객체지향 쿼리 언어다. 따라서 테이블을 대상으로 쿼리하는 것이 아니라 엔티티 객체를 대상으로 쿼리한다. - JPQL은 SQL을 추상화해서 특정 데이터베이스 SQL에 의존하지 않는다. - JPQL은 결국 SQL로 변환된다. 2. 문법 - select m from Member as m where m.age > 18 - 엔티티와 속성은 대소문자 구문 O(Member, age) - JPQL 키워드는대소문자 구분 X(SELECT, FROM, where) - 엔티티 이름 사용, 테이블 이름이 아님(Member) - 별칭은 필수(m) (as는 생략 가능) TypeQUery, Query - TypeQuery: 반환 타입이 명확할..

[Spring] 비즈니스 로직 층의 설계와 구현

비즈니스 로직 층의 역할은 도메인 모델인지, 트랜잭션 스크립트인지 관계없이 업무 처리(비즈니스 로직)를 하는 것 비즈니스 로직과 밀접한 관계가 있는 트랜잭션 처리는 잘 대응해야 함 5.1 트랜잭션이란? - 트랜잭션이란 관련된 여러 처리를 하나의 큰 처리로 취급할 경우의 단위 - 트랜잭션 내의 모든 처리가 성공했을 때 트랜잭션이 확정 - 트랜잭션 내에서 하나라도 실패할 경우 트랜잭션이 시작하기 전의 상태로 롤백 (1) 여러 업무에 걸쳐진 트랜잭션 예) 고객이 주문한 상품을 공장에 발주하고 물건이 도착하면 고객에게 출하하기 전까지의 트랜잭션 단위 (2) 하나의 사례에서 사용자로부터의 여러 요청에 걸쳐서 발생하는 트랜잭션 예) 상품의 재고를 화면에 표시하고, 출하할 상품 수를 입력한 후 확정 버튼을 누르기까지..

[RN] Mac에서 React Native 개발 환경 Setting

1. 홈브루 설치 - 홈브루는 맥에서 사용하는 설치 프로그램 https://brew.sh Homebrew The Missing Package Manager for macOS (or Linux). brew.sh - 명령어를 복사해서 터미널에서 실행 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 2. VScode 설치 - 설치 프로그램 다운로드 https://code.visualstudio.com/ Visual Studio Code - Code Editing. Redefined Visual Studio Code is a code editor redefined and optimized ..

[Go] 기초 - 컬렉션 (배열)

1. 배열 - 배열은 연속적인 메모리 공간에 동일한 타입의 데이타를 순서적으로 저장하는 자료구조 - Go에서 배열의 첫번째 요소는 0번, 그 다음은 1번, 2번 등으로 인덱스를 매긴다 (Zero based array). - 배열의 선언은 "var 변수명 [배열크기] 데이타타입" 과 같이 하는데, 배열크기를 데이타타입 앞에 써 주는 것이 C, Java 같은 다른 언어들과 다르다. Go에서 배열의 배열크기는 Type을 구성하는 한 요소이다. 즉, [3]int와 [5]int는 서로 다른 타입으로 인식된다. 배열이 선언된 후에 각 배열의 요소를 인덱스를 사용하여 읽거나 쓸 수 있다. package main func main() { var a [3]int //정수형 3개 요소를 갖는 배열 a 선언 a[0] = 1..

개발/Go 2022.07.20

[JPA] 값 타입

김영한님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 정리 1. JPA의 데이터 타입 분류 - 엔티티 타입 (1) @Entity로 정의하는 객체 (2) 데이터가 변해도 식별자로 지속해서 추적 가능 예) 회원 엔티티의 나이 값을 변경해도 키는 식별자로 인식 - 값 타입 (1) int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체 (2) 식별자가 없고 값만 있으므로 변경 시 추적 불가 예) 숫자 100을 200으로 변경하면 완전히 다른 값으로 대체 2. 값 타입 분류 - 기본값 타입 (1) 자바 기본 타입(int, double) (2) 래퍼 클래스(Integer, Long) (3) String - 임베디드 타입(embedded type, 복합 값 타입) - 컬렉션 값 ..

[Spring] 데이터 액세스 층의 설계와 구현

4.1 데이터 액세스 층과 스프링 - 데이터 액세스 층은 데이터 액세스 처리를 비즈니스 로직 층에서 분리하여 따로 만들어준 층 - 데이터 액세스 처리와 비즈니스 로직이 섞여있으면 유지보수가 어렵고, 코드 가독성이 떨어진다. 4.1.1 DAO 패턴이란? - DAO 패턴은 데이터의 취득, 변경 등 데이터 액세스 처리를 DAO라고 하는 오브젝트로 분리하는 패턴 - 데이터 액세스 방식이 바뀌어도 DAO만 변경하면 된다. - DAO 클래스는 DB의 테이블별로 만든다. 4.1.2 자바의 데이터 액세스 기술과 스프링의 기능 - 자바의 데이터 액세스 기술 (1) JDBC (2) 하이버네이트 & JPA 등 고성능 ORM 프레임워크 (3) MyBatis(iBATIS) (4) 독자 개발한 프레임 워크 등 - 스프링은 여러 ..

728x90