전체 글75 SPRING [#0] 프로젝트 생성 및 환경설정 개발환경 이클립스 4.24.0 JDK 11 Apache Tomcat 9.0 Work Bench & MySQL Mybatis Mac (M1) 기능 스프링 프레임워크(Meaven)을 기반으로 한 포트폴리오를 제작 합니다. 쇼핑몰의 핵심적인 기능과 + 관리자 페이지를 제작하여 간단한 유져 정보들을 받아보고자 합니다. 로그인, 회원가입 관리자 페이지 검색 게시판 구매, 장바구니 프로젝트 생성 및 환경설정 Spring MVC 프로젝트 생성 및 기본환경 설정 테스트는 생략하도록 하겠습니다. 최대한 기능 + 실습 중심으로 포스팅 할 까 합니다. spring_meaven 프로젝트를 MySQL과 연결하여 생성 My Batis 라이브러리 추가, SQLSessionFactory 설정 Meaven 코드를 pom 파일에 추가 .. 2022. 11. 14. SPRING[4] 스프링 Unit Test 테스트 코드를 왜 작성하는가? 운영 배포 이전에 코드가 의도한대로 작동하는지를 확인하기 위함 추후에관련코드변경이있을경우에작성해둔테스트케이스로사이드이펙트를최대한줄이기위함 테스트를 작성하는 과정에서 코드의 모듈화가 자연스럽게 이뤄지며 체계적인 코드 작성이 가능함 테스트의 종류 테스트는 단위 테스트, 통합 테스트, 기능 테스트가 있음 1. 단위 테스트 (Unit Test) 클래스 범주 내에서 작은단위(함수단위)의 기능에 대한 유효성을 검증함 간단한예시 with Code: a와 b를 입력받아 a*b를 수행하는 메소드 2. 통합 테스트 (Integration Test) 서로 다른 모듈, 클래스 간 상호작용의 유효성을 검사하는 테스트 순수 자바 객체만을 기반으로 테스트 하는 것이 아닌, IoC컨테이너, DB 등 다.. 2022. 11. 11. SPRING[3] 스프링 JPA + 배치 DB에 접근하는 방법은 무엇이 있는가? jdbc 활용과, JPA JPA Java Persistence API로 자바 진영에서 ORM 표준 기술로 사용되는 인터페이스 모음이다. JPA를 사용하는 이유? 반복되는 CRUD SQL을 대신해줌 개발자 대신 적절한 SQL을 생성하고 데이터베이스를 조작해서 객체를 자동으로 매핑하여 문제점을 보완한다. JPA 사용을 위한 Entity 만들기 @Getter : Lombok 의 get method @Entity : 해당 클래스를 DB 테이블과 연결 @Table : 테이블의 이름을 명시적으로 표현 @Id : 테이블의 PK @GeneratedValue : PK 생성 규칙 @Column : 각 테이블의 컬럼을 표현 JpaRepository 생성 Market 클래스로 DB 에 .. 2022. 11. 10. [Spring Project] 코인 자동매매 프로그램 만들기 - 4. 슬랙 api 연동 Slack bot 연동 오른쪽 상단의 Your Apps 클릭 https://api.slack.com/ Slack은 당신을 위한 Digital HQ입니다 Slack은 여러분의 팀과 소통할 새로운 방법입니다. 이메일보다 빠르고, 더 조직적이며, 훨씬 안전합니다. slack.com 워크 스페이스 생성 Scopes에서 봇의 권한을 설정해준다. 슬랙 채널에 추가 Spring 세팅 1. xml dependency 추가 2. Task.java 작성 알림봇을 제작할 것이므로 스케줄러를 이용해 메세지 작성 public static void sendSlackPost() { try { Slack slack = Slack.getInstance(); String token = ""; MethodsClient methods = .. 2022. 10. 26. SPRING[2] 클린 아키텍쳐 계층형 아키텍쳐와, 클린 아키텍쳐의 차이가 무엇인가? Go ahead 계층형(Layer) 아키텍쳐 웹, 도메인, 영속성 계층으로 구성된 전통적인 웹 어플리케이션 구조 (유사 관심사를 기준으로 레이어로 묶어 수평적으로 완성) 프레젠테이션 계층 : UI / 웹, 클라이언트와 접점 비즈니스 계층 : 서비스 / 도메인 계층 데이터 접근 계층(영속성) : 데이터베이스 접근 계층형 아키텍쳐 단점 계층형 아키텍쳐는 데이터베이스 주도 설계를 유도함 엔티티는 보통 영속성 계층형 위치한다. 따라서 도메인 계층에서 엔티티에 접근이 가능함 -> 이는 결합을 유발 클린 아키텍쳐 코어는 Use-Case 와 도메인 엔티티이다. 아래 사진처럼 모든 의존성은 안쪽으로 향한다. 핵심은 Entity, Controller는 외부와 소통한다.. 2022. 10. 26. [Spring Project] 코인 자동매매 프로그램 만들기 - 3. 업비트 Websocket 클라이언트 + 화면제작 Websocket 이란? 실시간 데이터를 받는것 (채팅) 필요한 라이브러리 추가 ticker의 값 중 UUID로 호출하면 됩니다. 파라미터 객체는 어떤 타입(현재가, 체결, 호가)으로 호출하고 어떤 코드(마켓)에 해당하는 데이터를 수신할 것인지를 전달해주어야 합니다. 로직은 웹소켓 컨트롤러를 이용해 연결을 하고, 데이터를 화면에 출력 @Scheduler 이란? 일정한 시간 간격으로, 혹은 특정 일정에 코드가 실행되는 것 코인은 매일 9시마다 전일대비%가 업데이트 갱신되기 때문에 스케쥴러를 사용하였습니다. 결과는 0.1초에 한번 upbitMarket 메소드를 실행 Websocket 실시간 시세 가져오기 1. Task 파일에 내 시세 현재가 불러오기 (Java application) @Component pu.. 2022. 10. 24. 이전 1 ··· 4 5 6 7 8 9 10 ··· 13 다음