본문 바로가기
반응형

전체 글1073

[mybatis] 자바에서 mybatis 자바 포스팅에 ORM 관련 포스팅이 다수를 이루지만 예전부터 자바 개발을 해온 사람이라면 mybatis가 더욱 친근할 것이다. 이번 포스팅에서는 스프링부트에서 사용하는 @Mapper 를 사용한 mybatis를 다뤄보려고 한다. controller 단은 모두 생략하고 결국 repository 부분만 다뤄볼 예정이다. 기존에 mybatis에서는 DAO 라는 개념이 존재하였다. Data Access Object 의 약자로 코드에서 데이터베이스와 통신을 하는 부분이다. 하지만 스프링부트에서는 이 DAO부분을 mapper 가 대신 해줄수 있다. 먼저 mapper 는 interface로 구현을 하며 아래와 같이 예시를 주면 @Mapper interface MemberMapper { @Select(MemberSQL... 2023. 3. 3.
[maven] snapshot 이란? maven 을 설정하기 위해서는 pom.xml 과 mvn repository 사이트를 자주 이용하게 되는데. 사용하면서 release 랑 snapshot 이라는 단어를 많이 접하게 된다. 이번 포스팅은 이 둘의 차이 뿐 아니라 추가적으로 버전 관리에 대해서 알아볼것이다. ​ Snapshot 아직은 안정화 되지 않은 데일리 빌드버전(최신 버전일 수도 있음) ​ GA (General Availability) 정식 릴리즈 버전 / 가장 안정적 상업성 개발을 할때는 안전하게 릴리즈 버전만을 사용하는게 유리 메이븐 리포지토리에서는 GA버전만 maven 중앙저장소에 올라가고 RC, M등은 안올라감 ​ M (Milestone) 팀이나 프로젝트마다 정해진 주기마다 배포하는 버전 M2라고 되어있으면 프로젝트 ‘마일스톤 .. 2023. 3. 2.
groovy란? JVM 에서 실행되는 스크립트 언어 문법이 Java와 비슷 Java와 호환이 되며 Java 클래스 파일을 그대로 groovy 클래스로 사용가능 이라는 특징을 가진 groovy 에 대해서 알아보도록 할것å이다. 위키백과에서 설명하는 groovy 는 다음과 같다. 그루비(Groovy)는 자바에 파이썬, 루비, 스몰토크 등의 특징을 더한 동적 객체 지향 프로그래밍 언어 이다. https://ko.wikipedia.org/wiki/%EC%95%84%ED%8C%8C%EC%B9%98_%EA%B7%B8%EB%A3%A8%EB%B9%84 아파치 그루비 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 그루비(Groovy)는 자바에 파이썬, 루비, 스몰토크 등의 특징을 더한 동적 객체 지향 프로그래밍 .. 2023. 3. 1.
글읽기, 수정하기 (read, readline, readlines) 파일 모드는 읽기 모드 ('r'), 새로 쓰기 모드 ('w'), 이어 쓰기 모드 ('a')가 있고, 'r'은 읽기 전용으로 파일을 오픈한다. 읽기만 가능하고, 쓰기는 되지 않는다. 'w' 는 쓰기 모드인데, 파일을 새로 만든다. 즉, 동일한 이름의 파일이 있으면 지우고 새로 작성한다. 'a' 는 쓰기 모드인데, 'w' 와는 다르게 기존 파일에 내용을 이어서 작성한다다. f = open('경로', '모드') ex) f = open('/home/python/test.txt', 'w') Python 파일 읽기 (1) readline() - 파일의 한 줄을 가져와 문자열로 반환, 파일 포인터는 그 다음줄로 이동한ㄷ다. (2) readlines() - 파일 내용 전체를 가져와 리스트로 반환, 각 줄은 문자열 형태.. 2023. 2. 28.
@Qualifier 어노테이션 사용법 스프링에서는 @Autowired를 사용해 의존성을 주입한다. bean을 설정할 때 를 사용함으로써 굳이 bean 태그 안에 나 태그를 추가하지 않아도 스프링의 @Autowired 어노테이션이 적용된 생성자, 필드, 메소드에 대해 의존 자동 주입을 처리한다. 하지만, 만약 동일한 타입을 가진 bean 객체가 두개가 있다면 어떻게 될까? 스프링이 어떤 빈을 주입해야 할 지 알 수 없어서 스프링 컨테이너를 초기화하는 과정에서 Exception을 발생시킨다. @Autowired의 주입 대상이 한 개여야 하는데 실제로는 두 개 이상의 빈이 존재해 주입할 때 사용할 객체를 선택할 수 없기 때문이다. 단, @Autowired가 적용된 필드나 설정 메서드의 property 이름과 같은 이름을 가진 빈 객체가 존재할 경.. 2023. 2. 27.
[Spring] NamedParameterJdbcTemplate 이번에 소개할 JdbcTemplate이란, 이전 버전에서는 우리가 데이터를 넣을 부분에 ?를 이용하여 처리를 했다. 이러한 방식은 인자 위치에 대한 순서가 강제되는데 이러한 방식은 개발자의 불편함과 가독성을 떨어뜨릴수가 있다. 예제 문법 String sql = "update member set name=?, price=?, age=? where id=?"; template.update(sql, name, price, age, itemId); 변수가 많아졌다면 하나하나 순서까지 비교해야하는 불편함이 있다. 그래서 나온것이 NamedParameterJdbcTemplate이다. NamedParameterJdbcTemplate는 ?대신 :변수명 을 이용하여 처리함으로써 순서에 강제를 받지 않는다. public .. 2023. 2. 26.
익명 클래스(anonymous class)란? 먼저 oracle 에서 소개하는 익명클래스에 대해서는 아래 링크에서 확인 가능하다. https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html Anonymous Classes (The Java™ Tutorials > Learning the Java Language > Classes and Objects) The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology n.. 2023. 2. 25.
JDBC / ODBC 차이 JDBC (Java Database Connectivity) Java에서 DB에 접근하여 데이터 조회, 삽입, 수정, 삭제를 가능케하는 것을 말한다. 다시말해 Java가 Database를 사용할 수 있도록 연결해주는 응용프로그램 인터페이스인 Java API 이다. ​ 이 응용프로그램 인터페이스는 데이터베이스 관리 시스템에 넘겨질 SQL 형태의 데이터베이스 접근요구 문장을, 각 시스템에 맞도록 바꾸는 역할을 하고 API는 동적으로 올바른 Java 패키지를 로드하고, JDBC 드라이버 매니저에 등록하기 위한 메커니즘을 제공한다. ​ JDBC connection는 명령문을 만들고, 실행하는 것을 지원한다. JDBC란 Java에서 DataBase와 연결하여 작업하기 위해서 Java와 연동되는 DBMS(ex. M.. 2023. 2. 24.
DBeaver DBeaver는 SQL 클라이언트이자 데이터베이스 관리 도구이다. 관계형 데이터베이스의 경우 JDBC API를 사용하여 JDBC 드라이버를 통해 데이터베이스와 통신한다. 그 밖의 데이터베이스(NoSQL)의 경우 사유 데이터베이스 드라이버를 사용한다. 자동 완성과 구문 강조를 지원하는 편집기를 제공한다. 이클립스 플러그인 구조 기반의 플러그인 아키텍처를 제공함으로써 애플리케이션 동작 중 상당수를 수정하여 데이터베이스에 특화된 기능이나 데이터베이스에 독립적인 기능들을 제공할 수 있게 한다. 이것은 자바로 작성된 데스크톱 애플리케이션이며 이클립스 플랫폼에 기반을 둔다. DBeaver는 아파치 라이선스로 배포되는 자유 오픈 소스 소프트웨어이다. 라이선스 관련해서는 아래 참고 포스팅을 참고 바란다. 역사 DBea.. 2023. 2. 23.
반응형