728x90

개발 287

[JPA] 스프링 데이터 - 확장 기능

김영한님의 실전! 스프링 데이터 JPA 정리 1. 사용자 정의 리포지토리 구현 - 스프링 데이터 JPA 리포지토리는 인터페이스만 정의하고 구현체는 스프링이 자동 생성 - 스프링 데이터 JPA가 제공하는 인터페이스를 직접 구현하면 구현해야 하는 기능이 너무 많음 - 다양한 이유로 인터페이스의 메소드를 직접 구현하고 싶다면? (1) JPA 직접 사용(EntityManager) (2) 스프링 JDBC Template 사용 (3) MyBatis 사용 (4) 데이터베이스 커넥션 직접 사용 등등.. (5) Querydsl 사용 - 사용자 정의 인터페이스 public interface MemberRepositoryCustom { List findMemberCustom(); } - 사용자 정의 인터페이스 구현 클래스 ..

[Go] 기초 - 메소드

1. Go 메소드(Method) - 메소드는 특별한 형태의 func 함수 - 메소드는 함수 정의에서 func 키워드와 함수명 사이에 "그 함수가 어떤 struct를 위한 메소드인지"를 표시한다. - receiver부분에 메소드가 속한 struct 타입과 struct 변수명을 지정한다.(struct 변수명은 함수 내에서 마치 입력 파라미터처럼 사용된다.) package main //Rect - struct 정의 type Rect struct { width, height int } //Rect의 area() 메소드 func (r Rect) area() int { return r.width * r.height } func main() { rect := Rect{10, 20} area := rect.area()..

개발/Go 2022.07.27

[Javascript] Object to Array

전 포스팅에서 Chart.js 사용기를 적었는데, 작업하다가 서버에서 Map형태로 보내준 데이터(Javascript에서는 Object로)를 배열로 변환해서 차트의 라벨과 데이터로 사용했다. 단순히 for문을 돌려서 배열로 만들었었는데, 훨씬 효율적인 방법이 있었다. let obj = { A : 'Apple', B : 'Banana', C : 'Coconut' }; let arr = []; let vArr = []; for (let k in obj) { arr.push(k); vArr.push(obj[k]); } console.log(arr); // ['A', 'B', 'C'] console.log(vArr); // ['Apple', 'Banana', 'Coconut'] for ... in 으로 key에 ..

[Javascript] Chart.js radar chart 만들기

C#코드를 Java로 Converting 작업 중 차트가 있는데, radarChart.aspx로 만들어져 있었다. 나는 화면 쪽은 Javascript로 작업을 하고 있었기 때문에, 저 라이브러리를 사용할 수 없었다. 예전 회사에서 D3.js를 해봤지만, 복잡했던 기억이 있다.(공부를 제대로 안했다..) 그래서 간단하고 사용하기 편한 Chart.js를 사용했다. 일단 공홈에서 라이브러리를 다운받았다. https://www.chartjs.org/docs/latest/ Chart.js | Chart.js Chart.js (opens new window) Installation You can get the latest version of Chart.js from npm (opens new window), the..

[Go] 기초 - 구조체(Struct)

1. Struct (구조체) - Go에서 struct는 Custom Data Type을 표현하는데 사용되는데, Go의 struct는 필드들의 집합체다. - Go에서 struct는 필드 데이터만을 가지며, (행위를 표현하는) 메서드를 갖지 않는다. - Go 언어는 객체지향 프로그래밍(Object Oriented Programming, OOP)을 고유의 방식으로 지원한다. 즉, Go에는 전통적인 OOP 언어가 가지는 클래스, 객체, 상속 개념이 없다. 전통적인 OOP의 클래스(class)는 Go 언어에서 Custom 타입을 정의하는 struct로 표현되는데, 전통적인 OOP의 클래스가 필드와 메서드를 함께 갖는 것(Java)과 달리 Go 언어의 struct는 필드만을 가지며, 메서드는 별도로 분리하여 정의한..

개발/Go 2022.07.27

[JPA] 스프링 데이터 - 쿼리 메소드 기능

김영한님의 실전! 스프링 데이터 JPA 정리 1. 메소드 이름으로 쿼리 생성 - 메소드 이름을 분석해서 JPQL 쿼리 생성 - 이름과 나이를 기준으로 회원을 조회하려면? // 순수 JPA public List findByUsernameAndAgeGreaterThan(String username, int age) { return em.createQuery("select m from Member m where m.username = :username and m.age > :age") .setParameter("username", username) .setParameter("age", age) .getResultList(); } // 스프링 데이터 JPA public interface MemberReposit..

[Go] 기초 - 패키지

1. Go 패키지 - Go는 패키지(Package)를 통해 코드의 모듈화, 코드의 재사용 기능을 제공한다. - Go는 패키지를 사용해서 작은 단위의 컴포넌트를 작성하고, 이러한 작은 패키지들을 활용해서 프로그램을 작성할 것을 권장한다. - Go는 실제 프로그램 개발에 필요한 많은 패키지들을 표준 라이브러리로 제공한다. 이러한 표준 라이브러리 패키지들은 GOROOT/pkg 안에 존재한다. GOROOT 환경변수는 Go 설치 디렉토리를 가리키는데, 보통 Go 설치시 자동으로 추가된다. 즉, 윈도우즈에서 Go를 설치했을 경우 디폴트로 C:\go 에 설치되며, GOROOT는 C:\go를 가리킨다. 2. Main 패키지 - 일반적으로 패키지는 라이브러리로서 사용되지만, "main" 이라고 명명된 패키지는 Go Co..

개발/Go 2022.07.25

[JPA] 스프링 데이터 - 공통 인터페이스 기능

김영한님의 실전! 스프링 데이터 JPA 정리 1. 공통 인터페이스 설정 - JavaConfig 설정 - 스프링 부트 사용 시 생략 가능 @Configuration @EnableJpaRepositories(basePackages = "jpabook.jpashop.repository") public class AppConfig {} - 스프링 부트 사용 시 @SpringBootApplication 위치를 지정(해당 패키지와 하위 패키지 인식) - 만약 위치가 달라지면 @EnableJpaRepositories 필요 - 스프링 데이터 JPA가 구현 클래스 대신 생성 - org.springframework.data.repository.Repository를 구현한 클래스는 스캔 대상 -> memberReposito..

[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
728x90