일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- esbuild
- blank import
- GIT
- context7
- AI
- 디자인패턴
- 구조체
- 통합 로깅 시스템
- 관측 가능성
- MSA
- go-sql-driver
- elasticsearch
- logging
- typescript
- javascript
- 오블완
- 티스토리챌린지
- Infra
- 캡슐화
- sqs fifo queue
- Kubernetes
- Intellij
- AWS
- RDS
- GoF
- go
- database/sql
- goland
- replication lag
- golang
- Today
- Total
목록Information Technology (327)
Fall in IT.
오늘은 JPA에서 사용할 수 있는 객체지향 쿼리언어에 대해서 알아보겠습니다. JPA는 복잡한 검색 조건을 사용하여 엔티티 객체를 조회할 수 있는 다양한 쿼리 기술들을 지원합니다. 그 종류로는 아래와 같습니다. 객체지향쿼리언어의 종류와 특징JPQL(Java Persistence Query Language) - 데이터베이스 테이블을 대상으로하는 데이터 중심의 쿼리가 아닌 객체를 대상으로 검색하는 객체지향 쿼리 (엔티티 객체를 조회하는 객체지향 쿼리.) - SQL을 추상화해서 특정 데이터베이스 SQL에 의존하지 않는다. - JPQL은 SQL보다 간단하다. Criteria - JPQL을 편하게 작성하도록 도와주는 API, 빌더 클래스모음. - 문자가 아닌 query.select(m).where.. 과 같이 프로..
안녕하세요. 오늘은 Android 개발시 많이 거론되는 용어들인 네이티브앱, 웹앱, 하이브리드 앱에 대해서 알아보겠습니다. 각각의 개발 방식들의 특징 및 장단점을 간단히 정리하자면, 네이티브앱우리가 흔히 사용하는 모바일 어플리케이션을 말합니다. 모바일 기기에서 지원하는 기능을 전부 사용할 수 있습니다. 카메라, gps 등..실행속도도 빠르고, 앱스토어, 플레이스토어 등에 업로드해서 배포 할 수 있습니다.인터넷이 사용 가능하지 않은 환경에서도 일부 기능을 작동 할 수 있습니다.고성능의 어플리케이션 개발시에 유리합니다.개발기간이 오래 걸리고, 개발 비용도 많이 필요합니다. (모바일 플랫폼별로 앱을 만들어야합니다.)업데이트시 앱스토어 및 플레이스토어에 재배포해야하고, 클라이언트는 다운로드 해야 합니다.배포 시..
오늘은 Android 개발 시 주의해야 할 사항에 대해서 알아보겠습니다.요즘 모바일 장비들의 성능이 좋아지고 있지만, 성능에 대한 이슈는 아직도 여전합니다.개발에 있어서 몇가지 주의사항을 정리해 보겠습니다. 안드로이드 성능과 관련된 자료는 구글에서 제공하는 개발자 사이트를 이용하면 됩니다.http://developer.android.com/training/articles/perf-tips.html 개발자 사이트 중 몇가지만 설명해보겠습니다. 안드로이드 성능 저하 요인Avoid Creating Unnecessary Objects - 필요없는 객체 생성은 피해야 한다. - String 대신 StringBuffer를 사용한다. - Integer 대신 int를 사용한다. - 다차원 배열 대신 1차원 배열을 사용..
오늘은 Spring Data JPA 기본키 매핑하는 방법에 대해서 알아보겠습니다. Spring Data JPA 에서는 엔티티의 기본키를 @Id 어노테이션을 사용하여 설정합니다. @Entitypublic class Team{@Id@Column(name = "team_id")private Long id; (이하 생략)} 이때, 기본키를 할당하는 방법으로는 두가지가 있습니다.직접할당 : 기본 키를 어플리케이션에서 직접 할당 해주는 방법 자동생성 : 데이터베이스가 자동으로 할당해주는 방법 (예를들어, 오라클은 sequence, MySQL의 auto_increment)데이터베이스 벤더마다 sequence, auto_increment 등 기본키를 자동생성하는 지원하는 방법이 다릅니다.Spring Data JPA는 ..
오늘은 JPA를 사용하는 이유와 Spring Data JPA에서 연관관계 매핑하는 방법에 대해서 알아보겠습니다. JPA란?JPA는 Java Persistance API의 약자로, 자바 진영의 ORM 기술 표준입니다. ORM이란?ORM은 Object-Relational Mapping의 약자로, 객체와 관계형 DB를 매핑하는 기술 입니다. JPA를 사용하는 이유?생산성 자바 객체를 사용하여, DB 스키마를 생성 및 SQL 처리를 할 수 있습니다. 유지보수 기존에는 DB에 필드를 추가할때, DB뿐만 아니라 관련 코드까지 모두 수정해야 하는데, JPA를 사용하면 엔티티 객체에 멤버변수만 추가해주면 된다. 또한, 기본적인 CRUD의 경우 JPA에서 기본적으로 제공해준다. 성능 어플리케이션과 데이터베이스 사이에서 ..
오늘은 java에서 디렉터리 또는 파일 생성하는 방법에 대해서 알아보겠습니다. java.io.File 클래스 사용. 디렉터리 생성boolean mkdir(); //상위의 디렉터리가 존재하지 않을 경우, 디렉터리 생성 못하고 false를 반환 합니다.boolean mkdirs(); //상위의 디렉터리가 존재하지 않을 경우, 상위 디렉터리까지 모두 생성합니다. sample codeFile file = new File("/opt/test/");file.mkdir(); file.mkdirs(); 파일생성boolean createNewFile(); 같은 이름의 파일이 존재하면 false, 존재하지 않고 파일이 생성되면 true를 반환 합니다. 파일 경로가 존재하지 않을 경우 IOException 발생. No su..
오늘은 static 을 잘 활용하는 방법에 대해서 알아보겠습니다. 자주 사용하고 절대 변하지 않는 변수는 final static 으로 선언합니다. - 템플릿 성격의 객체도 static으로 선언하는 것이 성능 향상에 도움이 됩니다. config 파일 정보도 static으로 관리합니다. - 자바 개발을 할때, 무수히 많은 config 정보들이 있는데 매번 객체를 생성할때 호출 하는 것은 매우 비효율적 입니다. static으로 선언하여 클래스가 로딩될때 한번만 값을 가져오도록 해야합니다. 값이 동시에 변경되는 변수의 경우 static 변수로 사용하면 안됩니다. - 동시에 QuerySample의 query변수를 접근할 경우, 데이터가 꼬이는 현상이 발생할 수 있습니다. public class QuerySampl..
리눅스 운영체제에서 부팅시 자동으로 서비스를 시작시키는 방법에 대해 알아보겠습니다. 리눅스 시스템 서비스 등록 방법 Redhat계열에서는 스크립트를 init.d의 서비스로 등록해서 부팅시 자동으로 시작하게 한다. /etc/init.d/ 하위 경로에 스크립트 파일을 위치 시킨다.부팅과 동시에 실행하기위해 run-level에 등록한다. $ chkconfig --add "스크립트명"부팅시 자동으로 실행, 종료시 자동으로 종료된다.service 스크립트명 (start | stop | status) 가능 test.sh 스크립트를 서비스 등록하기 $ mv test.sh /etc/init.d/$ chkconfig --add test.sh$ service status test.sh등록 완료 리눅스 chkconfig 로..
유닉스계열 운영체제에서 스크립트 작업을 하다보면, 모든 라인 마지막에 ^M 문자가 붙어있는 경우를 볼 수 있다. 이러한 일이 발생하는 경우는 윈도우에서 스크립트를 수정하고 유닉스계열 운영체제로 파일을 옮길경우 생기곤 하는 문제인데, 일일이 수정지울 필요 없이, 아래의 간단한 명령어로 해당 문자를 모두 지울 수 있다. vi command에서 다음과 같이 입력한다.$ :%s/^M//g (^M은 Ctrl + v + m으로 입력) ex) sample 파일에 ^M 문자를 지울 경우 vi 편집기를 통해 파일을 오픈한다. - $ vi sample명령어를 입력한다. - $ :%s/^M//g 모두 즐거운 코딩하세요~
오늘은 StringBuffer와 StringBuilder의 차이점에 대해 아주 간단한 내용만 알아보도록 하겠습니다. String 클래스의 특징 불변하는 클래스이다. 즉, 한번 생성되어지면 변할 수 없다. String 클래스의 메소드 subString(), concat() 등 모두 새로운 객체를 생성하여 만들어진다. StringBuffer 클래스의 특징 변하는 클래스이다. append(), insrt(), delete() 등의 메소드를 통하여 StringBuffer 객체가 가지고 있는 문자열을 변경 할 수 있고, 새로운 객체를 생성하지 않고 기존의 문자열을 변경한다.동기화를 지원한다. 즉, 멀티스레딩 환경에서 동기화가 가능하다. (코드를 보면, 각 메소드 별로 synchronized 키워드가 존재한다.)/..