RESTful Web Service 개발 - WEB Service 개발 방법 SOAP과 REST의 이해
·
공부/Spring
Spring Boot를 이용한 RESTful Web Services 개발 WEB Service 개발 방법 SOAP과 REST의 이해 Web Service & Web Application Web Service World Weid Web(WWW)를 통해 이기종 간의 통신 서비스를 제공한다. 네트워크를 통해 특정한 서버의 포트를 열어 놓고, 클라이언트의 요청을 받은 HTML, JSON, XML, images 등과 같은 웹 문서를 제공한다. 웹 서비스는 WWW, Internet, HTTP의 기술을 사용하는 웹을 통해 특정한 도메인의 문제를 해결하기 위한 Web Application을 뜻하기도 한다. 즉, 네트워크 상에서 서로 다른 종류의 컴퓨터들 간에 상호작용하기 위한 소프트웨어 시스템이다. Web Servic..
[프로그래머스_1] 크기가 작은 부분문자열 JAVA
·
알고리즘/알고리즘 풀이
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분문자열 중에서, 이 부분문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 return하는 함수 solution을 완성하세요. 예를 들어, t="3141592"이고 p="271" 인 경우, t의 길이가 3인 부분 문자열은 314, 141, 415, 159, 592입니다. 이 문자열이 나타내는 수 중 271보다 작거나 같은 수는 141, 159 2개 입니다. 제한 사항 1 ≤ p의 길이 ≤ 18 p의 ..
[Java] 인텔리제이 자바의 정석 Properties 파일 저장하기
·
공부/Java
연관 게시글 [Java] 인텔리제이 argument로 txt 파일 읽어오기 인텔리제이 agrs로 txt 파일 읽어오기 자바의 정석 책으로 Properties 실습 하던 도중 PropertiesEx2 예제에서 txt 파일을 args를 통해 읽어오는 실습에서 콱 막히고 말았다. 인텔리제이에서 agrs 설정은 물 devhan.tistory.com 인텔리제이 자바의 정석 Properties 파일 저장하기 이전 실습은 파일 읽어오기였다면 이번 실습은 파일에 내용을 저장해보자. 이 또한 처음 설정해보는건데 그래도 파일 읽어오기 한 번 설정해봤다고 저장하는 방법은 좀 더 쉽게 설정했다. 1. 파일 생성하기 실습 코드를 보면 일반 txt 파일과 xml 파일, 총 두 개가 필요하므로 원하는 경로에 파일 두 개를 만들어준..
[Java] 인텔리제이 argument로 txt 파일 읽어오기
·
공부/Java
인텔리제이 agrs로 txt 파일 읽어오기 자바의 정석 책으로 Properties 실습 하던 도중 PropertiesEx2 예제에서 txt 파일을 args를 통해 읽어오는 실습에서 콱 막히고 말았다. 인텔리제이에서 agrs 설정은 물론 외부 txt 파일을 어떻게 읽어와야하는지 몰랐기 때문이다. 자바의 정석 책에는 인텔리제이 설정법이 나와있지 않아 여기저기 검색해보며 방법을 찾았다. 1. 텍스트 파일 만들기 윈도우면 편하게 우클릭으로 새 텍스트 파일을 생성할 수 있지만 나는 mac을 사용하기 때문에 터미널에서 텍스트 파일을 생성해주었다. (물론 그냥 인텔리제이에서 간단하게 생성해도 된다.) cd 명령어로 프로젝트 폴더로 이동한다. cat > 파일명.txt 입력 내용 입력 command + z로 빠져나오기 ..
MAC에서 CentOS 6.6 VirtualBox로 설치하기
·
공부/기타
갑자기 리눅스?! 방통대 이번 학기에 유닉스 시스템을 수강하는데 아무래도 설치하면서 직접 해보면 점수를 더 잘 받을 수 있을 거 같아서 직접 설치해보려한다! 강의에는 윈도우 환경에서 설치하는 방법 밖에 없어 직접 여기저기서 찾아보면서 설치했다. 일단 CentOS를 설치하기 전에 필요한 준비물은 VirtualBox이다. VirtualBox는 가상 머신 소프트웨어로 하나의 물리적 컴퓨터에 추가로 가상의 머신을 만들고 운영체제를 설치한다. 즉, 하나의 컴퓨터로 여러 개의 운영체제를 돌릴 수 있도록 도와주는 소프트웨어이다. 리눅스를 설치하게 되면 기존 운영체제는 '호스트 운영체제', 리눅스는 '게스트 운영체제'가 된다. 강의에서는 VirturalBox에서 설치해보니 이상현상이 발생하여 VMWare로 설치하기를 ..
React와 Springboot 연동하기
·
프로젝트 및 컨퍼런스 회고/한이음 프로젝트
React와 Springboot 연동하기 React와 Springboot 깃랩 레포지토리를 나눠놔서 각각 독립적으로 서버를 작동시켜서 연동해줘야 하는 상황이 됐다. Node 설치 다운로드 | Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 위 공식 홈페이지로 들어가서 다운로드 한다. 현재버전 말고 LTS 버전으로 다운받으면 된다. 포스팅 기준으로 LTS 최신 버전은 16.17.0(includes npm 8.15.0)이다. create-react-app 설치 MAC 터미널에서 아래 명령어를 입력해 create-react-app을 설치한다. npm -v // 버전확인. 만약 버전 확인이 되지 ..
한이음 프로젝트 첫 글
·
프로젝트 및 컨퍼런스 회고/한이음 프로젝트
블로그에 글 작성하는 것 자체가 너무 오랜만이다. 왜 오랜만이냐면 일단 예전 국비 시절 잠깐 배운 스프링 + 인프런 강의로 살짝 맛 본 스프링부트 + 인프런 강의로 살짝 맛 본 JPA + 인프런 강의로 살짝 맛 본 리액트 실력으로 개발을 하고 있으니 뭔가 진짜 개발을 하기보다는 레퍼런스를 찾고, 오류 해결하는 시간이 더 길어서 진도가 너~~~무 느린 거에 비해 시간을 너무 많이 쏟고 있다. 게다가 방통대도 형성평가를 시작해서 최대한 하루에 하나씩 들으려하니 퇴근하고 나면 도저히 시간적 여유가 생기지 않는다. 여기에 런데이까지 더하면? 여기에 또 말해보카까지 더하면? 죽음이다 죽음. 아무튼 나를 모르는 누군가가 옆에서 힐끗 봤을 때 갓생을 사는 것처럼 보이지만 음... 뭔가 알맹이가 빠지고 얼레벌레 모든 ..
[SpringBoot] Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true 에러 해결
·
에러 해결
한이음 프로젝트의 변경사항이 생겨 프로젝트 이름과 경로를 변경하고 서버가 실행되나 테스트해봤는데 에러가 발생했다. *************************** APPLICATION FAILED TO START *************************** Description: The bean 'boardRepository', defined in com.salmal.board.repository.BoardRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration, could not be registered. A bean with that name ..
Query DSL - 정렬, 페이징, 집합
·
공부/JPA
Query DSL게시글은 대부분 인프런의 김영한님의 강의인 '실전! Query DSL' 기반으로 내용을 정리했습니다. 정렬 정렬 기준은 다음과 같다. 회원 나이 내림차순(desc) 회원 이름 오름차순(asc) 단, 회원 이름이 없으면 마지막에 출력한다. @Test public void sort() { em.persist(new Member(null, 100)); em.persist(new Member("member5", 100)); em.persist(new Member("member6", 100)); List result = queryFactory .selectFrom(member) .where(member.age.eq(100)) .orderBy(member.age.desc(), member.usern..
Query DSL - 결과 조회
·
공부/JPA
Query DSL게시글은 대부분 인프런의 김영한님의 강의인 '실전! Query DSL' 기반으로 내용을 정리했습니다. 결과 조회 fetch() : List 조회, 데이터가 없으면 빈 List 반환 fetchOne() : 단 건 조회 결과가 없으면 : null 결과가 둘 이상이면 : NonUniqueResultException 발생 fetchFirst() : limit(1).fetchOne() fetchResults() : 페이징 정보 포함, total count 쿼리 추가 실행 fetchCount() : count 쿼리로 쿼리 변경해서 count 수 조회 fetchResults fetch, fetchOne, fetchFirst의 경우는 굳이 실행 안해봐도 어떻게 나오는지 알테니 fetchResults부터..
Query DSL - 검색 조건 쿼리
·
공부/JPA
Query DSL게시글은 대부분 인프런의 김영한님의 강의인 '실전! Query DSL' 기반으로 내용을 정리했습니다. 검색 조건 쿼리 코드로 먼저 확인해보자. @Test public void search() { Member findMember = queryFactory .selectFrom(member) .where(member.username.eq("member1") .and(member.age.eq(10))) // .where(member.username.eq("member1"), member.age.eq(10)) 와 동일 .fetchOne(); assertThat(findMember.getUsername()).isEqualTo("member1"); } .select와 .from의 경우는 .selec..
QueryDSL - 기본 Q-Type 활용
·
공부/JPA
Query DSL게시글은 대부분 인프런의 김영한님의 강의인 '실전! Query DSL' 기반으로 내용을 정리했습니다. 기본 Q-Type 활용 Q 클래스 인스턴스를 사용하는 방법 별칭 직접 지정 QMember qMember = new QMember("m"); 기본 인스턴스 사용 QMember qMember = QMember.member; 기본 인스턴스는 QMember 클래스 파일에 가보면 아래 코드로 만들어져 있는 걸 확인할 수 있다. public static final QMember member = new QMember("member1"); 저번에 작성한 테스트 코드에 적용해보자. //QMember m = new QMember("m"); // 별칭 주는 방법 QMember m = QMember.membe..
Query DSL - JPQL vs QueryDSL
·
공부/JPA
Query DSL게시글은 대부분 인프런의 김영한님의 강의인 '실전! Query DSL' 기반으로 내용을 정리했습니다. JPQL vs QueryDSL 엔티티 찾기 JPQL로 엔티티 하나를 찾아오려면 아래와 같이 작성하면 된다. @Test public void startJPQL() { // member1 찾기 String qlString = "select m from Member m where m.username=:username"; Member findMember = em.createQuery(qlString, Member.class) .setParameter("username", "member1") .getSingleResult(); assertThat(findMember.getUsername()).is..
Query DSL - 예제 도메인 모델
·
공부/JPA
Query DSL게시글은 대부분 인프런의 김영한님의 강의인 '실전! Query DSL' 기반으로 내용을 정리했습니다. 예제 도메인 모델 예제는 익숙하고도 간단한 Member와 Team이다. Member의 컬럼은 id, username, age, team이 있고 Team의 컬럼은 id, name, members가 있다. 둘의 연관 관계는 Member의 입장에서 보면 Member와 Team은 다대일이고, Team의 입장에서 보면 Team과 Member는 일대다이다. Member 클래스 어노테이션 @Entity @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) @ToString(of={"id", "username", "age"}) publi..
Query DSL - 스프링 부트 설정
·
공부/JPA
Query DSL게시글은 대부분 인프런의 김영한님의 강의인 '실전! Query DSL' 기반으로 내용을 정리했습니다. 스프링 부트 설정 application.yml 생성 및 설정 src/resources에 있던 application.properties 파일을 지우고 application.yml 파일을 생성 후 아래 코드를 작성한다. spring: datasource: url: jdbc:h2:tcp://localhost/~/querydsl username: sa password: driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create properties: hibernate: # show_sql: true format_sql: true loggi..