목록Programing (115)
월루를 꿈꾸는 대학생
새로운 할인 정책 개발 새로운 요구사항으로 주문 금액에 따라 할인율을 다르게 적용! 객체지향 설계를 준수했다면 요구사항 변경에 유연하게 대체 가능 계획에 따르기 보다는 변화에 대응하기를.. 원래 있던 discountPolicy인터페이스에 구현체를 하나 더 추가함 -> RateDiscountPolicy 할인과 관련된 부분만 별도로 떼어냈으니까 테스트 하기가 쉬워진거다 class RateDiscountPolicyTest { RateDiscountPolicy discountPolicy = new RateDiscountPolicy(); @Test // 성공 테스트 @DisplayName("VIP는 10% 할인이 적용되어야 한다") void vip_o(){ //given Member member = new Mem..
비즈니스 요구사항과 설계 회원 회원을 가입하고 조회할 수 있다. 회원은 일반과 VIP 두 가지 등급이 있다. 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정) 주문과 할인 정책 회원은 상품을 주문할 수 있다. 회원 등급에 따라 할인 정책을 적용할 수 있다. 할인 정책은 모든 VIP는 1000원을 할인해주는 고정 금액 할인을 적용해달라. (나중에 변경 될 수 있 다.) 할인 정책은 변경 가능성이 높다. 회사의 기본 할인 정책을 아직 정하지 못했고, 오픈 직전까지 고민을 미루고 싶다. 최악의 경우 할인을 적용하지 않을 수 도 있다. (미확정) 회원데이터 및 할인 정책은 아직 결정되지 않았기 때문에 무기한 대기일 수도 있다 그래서 인터페이스를 만들고 구현체를 언제든지 갈아..
스프링 핵심 가치 - 객체지향 옛날 옛적에 ejb가 있었음 표준 기술 느낌 정말 어렵고 복잡하고 느림 .. 즉 쓰기가 어렵다 2002년 로드 존슨이 스프링을 만듦 --- 필수 - 스프링 프레임워크 - 스프링 부트 그 외 - 스프링 시큐리티 - 스프링 데이터 - 스프링 클라우드 등등 ===== 좋은 객체 지향이란?? 객체지향 특징 추상화 캡슐화 상속 다형성 유연하고 변경이 용이하다라 -> 다형성!!! 다형성!! 가장 중요하당 세상을 역할과 구현으로 구분 역할이 인터페이스 구현이 인터페이스 구현한 객체 역할은 여러가지 구현체로 구현이 가능 자동차 개념 이걸 구현한게 여러 테슬라 기아 아반떼 운전자는 아반떼에서 테슬라로 바껴도 운전가능하다 자동차가 바껴도 운전자에게 영향이 없다 즉 유연하고 변경이 용이 인터페..
깃허브 액션의 이해 - ci / cd 플랫폼 - 리포지토리에 이벤트 발생시 워크플로우를 실행시켜서 배포가능 깃허브 액션의 컴포넌트 - 리포지토리에서 어떤 이벤트가 발생하면 워크플로우 실행됨 - 순차적 혹은 병렬로 실행가능 워크플로 - 하나 이상 작업을 실행하는 프로세스 - YAML - 이벤트에 의해서 수동 혹은 자동으로 실행 - .github/workflows 디렉토리에 정의 이벤트 - 리포지토리의 특정 활동 (트리거) ex_ 풀리퀘스트 , 이슈 열기 , 커밋 잡 - 워크플로의 집합 - 같은 러너에서 실행하기 때문에 각 단계끼리는 데이터 공유 가능 - 디폴트로는 종속성 없음 - 종속성 있는 작업의 경우 동기적으로 실행 액션 - 복잡하지만 자주 반복되는 작업 수행 - 워크플로 파일에 중복을 제거 가능 - ..
rest controller 쓰는 이유 - 아무 역할 하지 않고 바로 뷰로 넘김 - 내 일을 넘기지 않고 컨트롤러에서 로직 처리 하는 거 - json으로 값 넘기기 해줘도 될 듯 - 임마가 마지막 값을 넘기는게 아니라 그대로 뿌려줌 ! @GetMapping("/coffeeAjax") public String doCoffeeAjax(Model model){ return "/v1/coffeeAjax"; } name = post넘길 떄 id = 자바스크립트에서 이용 https://mvnrepository.com/artifact/org.json/json 컨트롤러 - rest controller 로 값 자체를 보낼 수도 있고 - post로 값 받아서 반환을 할 때 파라미터로 검색 때리고 json으로 값을 변환시켜..
마리아db 관련 내용 설정 application.properties # Port server.port=8085 # MariaDB spring.datasource.driver-class-name=org.mariadb.jdbc.Driver spring.datasource.url=jdbc:mariadb://localhost:3307/boot_study spring.datasource.username=boot spring.datasource.password=boot # Thymeleaf spring.thymeleaf.cache=false #spring.thymeleaf.prefix=classpath:/templates spring.thymeleaf.prefix=file:src/main/resources/temp..
맥 터미널에서 마리아 디비 생성 명령어 실행 brew install mariadb # 마리아 디비 접속 mysql -u root # 데이터베이스 리스트 확인 show databases; # 데이터베이스 생성 create database coffee; # 계정 생성 create user 'user'@'localhost' identified by 'password'; # 계정 권한 부여 grant all privileges on coffee.* to 'user'@'localhost'; GUI https://sequelpro.com/ Sequel Pro Perfect Web Development Companion Whether you are a Mac Web Developer, Programmer or Sof..
객체 지향 프로그램 객체들의 모임 .. 객체는 서로 메세지를 통해 협력한다 유연하고 변경이 용이 유연하고 변경이 용이 -> 컴포넌트를 쉽고 유연하게 변경하고 개발가능 - > 다형성 !! 세상을 역할과 구현으로 구분! 역할 = 인터페이스 구분 = 인터페이스 구축한 객체 벤츠 탄 사람이 트럭 탈 수 있지 자동차 바껴도 운전자에게 역할은 안 바뀜 유연하고 변경이 용이 = 내가 자동차 역할을 벤츠에서 덤프트럭으로 바꿔도 운전자는 운전면허만 있으면 가능 자동차 끼리 바뀔때는 새로 운전면허 바뀔 필요 없이 운전가능 운전자는 자동차 인터페이스만 알고 있음 자동차 역할을 만들고 구현을 구분한 것은 운전자를 위해! 운전자 = 클라이언트 운전자는 자동차 내부 몰라도 됨 ... 자동차 역할만 하고 있으면 내부적으로 바껴도 ..
참고 자료 https://velog.io/@adbr/flutter-line-chart%EA%BA%BD%EC%9D%80%EC%84%A0-%EA%B7%B8%EB%9E%98%ED%94%84-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B02-flutter-flchart-example flutter line chart(꺽은선 그래프) 구현하기2 (flutter fl_chart example) 사용한 라이브러리 https://pub.dev/packages/fl_chart > (공식문서) 라이브러리 차트 유형 https://github.com/imaNNeoFighT/flchart/blob/master/repofiles/documentations/index.m velog.io https://blog...
FlutterSecureStorage https://pub.dev/packages/flutter_secure_storage flutter_secure_storage | Flutter Package Flutter Secure Storage provides API to store data in secure storage. Keychain is used in iOS, KeyStore based solution is used in Android. pub.dev - 보다 안전한 저장소 - 키와 벨류로 매칭이 됨 - 보통 로그인 정보를 저장 혹은 토큰 정보를 저장하는 용도로 사용함 저장소 생성 final storage = FlutterSecureStorage(); 읽기 - 키 이름에 key를 넣어서 value를 읽..