목록전체 글 (69)
꾸준한 개발일기
AWS에 내가 만든 프로젝트를 올리기 위해 AWS에 대한 개념 먼저 공부해보았다. 외부에서 내가 만든 서비스에 접근하려면 24시간 작동한는 서버가 필요하다. 24시간 작동하는 서버에는 3가지 선택지가 있다. 집에 PC를 24시간 구동 호스팅 서비스(Cafe 24, 코리아호스팅 등)을 이용 클라우드 서비스(AWS, AZURE, GCP 등)을 이용 일반적으로 비용은 호스팅 서비스나 집 PC를 이용하는 것이 저렴하다. 하지만 만약 특정 시간에만 트래픽이 몰린다면 유동적으로 사양을 늘릴 수 있는 클라우드 서비스가 유리하다. 클라우드 서비스는 인터넷(클라우드)을 통해 서버, 스토리지(파일 저장소), 데이터베이스, 네트워크, 소프트웨어, 모니터링 등의 컴퓨팅 서비스를 제공한다. 예를 들어 AWS의 EC2는 서버 장..
회원가입 후 주문 시 회원등급(VIP, BASIC)에 따라 할인을 받는 기능을 구현하였다. 현재 DB가 정해져 있지 않고, 할인도 정해진 액수로 할인이 들어갈지, 아니면 정률 할인이 적용할지 정해지지 않았다는 설정이다. 필요 기능을 구현하고 고객의 요구에 맞춰 할인 정책을 바꿔낄 수 있도록 구현하는데 여기서 제어의 역전과 의존관계 주입에 대해 이해해보고자 한다. AppConfig 먼저, 프로젝트 코드이다. 전체 코드는 맨 아래 깃헙 주소를 올려 놓겠다. package hello.core; import hello.core.discount.DiscountPolicy; import hello.core.discount.FixDiscountPolicy; import hello.core.discount.RateDi..
자바 개발자들의 필수 라이브러리인 롬복을 빌드 해주려는데 오류가 발생했다. 문제확인: build.gradle의 dependencies에 아래 코드를 추가해준 후 implementation('org.projectlombok:lombok') Gradle 새로고침을 하였는데 아래의 에러메세지가 떴다. 오류 메세지: Could not find method compile() for arguments [org.projectlombok:lombok] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler. 그리고 현재 프로젝트의 설정은 Gradle 버전 7이다. 해결방법: 해결방법은 간단했다. Gradle..
데이터를 연계해서 가져오는데 도메인 host를 사용하고 있었다. 서버에선 도메인을 등록해주지 않았기 때문에 갑자기 문제가 발생하였다. 그래서 도메인 명으로 호스트를 찾는 법을 정리하려 한다. 리눅스나 윈도우에서 터미널을 열어준다. 리눅스에서는 ssh, 윈도우에서는 cmd를 사용하면 된다. ping 도메인명 터미널에서 ping을 날려준다. C:\Users\OOO>ping OOO.OOO.or.kr Ping OOO.OOO.or.kr [OO.O.OOO.OOO] 32바이트 데이터 사용: 요청 시간이 만료되었습니다. 요청 시간이 만료되었습니다. 요청 시간이 만료되었습니다. 요청 시간이 만료되었습니다. OO.O.OOO.OOO에 대한 Ping 통계: 패킷: 보냄 = 4, 받음 = 0, 손실 = 4 (100% 손실), ..
인텔리제이를 사용하여 스프링 프로젝트를 진행해보기로 했다. 먼저 인텔리제이를 설치했고 프로젝트를 만드는 방법을 정리해보려한다. 인텔리제이는 이클립스의 워크스페이스 같은 개념이 없고 프로젝트와 모듈의 개념만 있다. 그렇기 때문에 한 화면에서는 하나의 프로젝트만 열리고 모든 프로젝트를 한 번에 불러올 수 없다. 이점을 주의하여야 한다. New-Project 새로운 프로젝트를 생성한다. Gradle-Java 프로젝트는 그레이들로 생성해준다. Next 클릭 프로젝트명과 위치 지정 프로젝트명과 위치를 지정해주었다. 그레이들 프로젝트를 스프링 부트 프로젝트로 변경하기 buildscript { ext { springBootVersion = '2.1.7.RELEASE' } repositories { mavenCentr..