목록전체 글 (141)
공부하는 스누피
API 통합 테스트 JUnit에서 제공하는 mockMvc는 api 호출을 통해 테스트를 수행합니다. 예상되는 응답을 설정할 수 있고, 실제 응답이 예상과 다를 경우 assert를 던져 테스트가 실패하도록 합니다. Test Context 설정 @ExtendWith(SpringExtension.class) @SpringBootTest(classes = SpringApplication.class, properties = { ".../application-test.yaml", ".../application.yaml" }) @ActiveProfiles("test") public abstract class TestSupport{ } - 테스트 클래스가 이 클래스를 상속 받게 하면 클래스 별로 Test Context..
Gradle 설정 // https://mvnrepository.com/artifact/mysql/mysql-connector-java implementation 'mysql:mysql-connector-java:8.0.16'application.properties 설정 # datasource config spring.datasource.url=jdbc:mysql://localhost/tobyspring spring.datasource.username=integer spring.datasource.password=1234 spring.datasource.driver-class-name=com.mysql.cj.jdbc.DriverDao에 DataSource import import javax...
1. 클라우드 컴퓨팅 모델 - IaaS (Infra as a Service) : 가상 or 분산 HW, 데이터 스토리지 제공 - PaaS (Platform as a Service) : infra 관리를 대신해주고 사용자가 배포와 app 관리까지만 신경써도 되게끔 함 - SaaS (Software as a Service) : End-User App을 의미. 이메일 프로그램이 대표적인 예. 2. 클라우드 컴퓨팅 배포 모델 - 클라우드 기반 : app의 모든 부분을 클라우드에서 실행 => 기존 app -> 클라우드 마이그레이션 많이 함 - 온프레미스 : 가상화 및 리소스 관리 도구를 사용하여 리소스 배포 => 프라이빗 클라우드 배포, 별도 IDC 인프라 사용 - 하이브리드 : 클라우드 기반 리소스를 온프레미스..
디렉터리 구조 /rootProject ㄴ/server ㄴ/src ㄴ/templates ㄴindex.html ㄴ app.py ㄴDockerfile ㄴ/static ㄴstyle.css ㄴ/venv ㄴ.firebaserc ㄴfirebase.json ㄴfirestore.indexes.json 1단계: 샘플 app 작성하기 2단계: 앱을 컨테이너화하여 Container Registry에 업로드 gcloud builds submit --tag gcr.io/PROJECT_ID/rootProject 3단계: Cloud Run에 컨테이너 이미지 배포 gcloud run deploy --image gcr.io/PROJECT_ID/rootProject 4단계: Firebase로 호스팅 요청 전달 firebase.json 편..
Computing 클라우드의 가상 서버를 작동하는 것. AWS Batch로 배치 작업을 실행할 수도 있고, Elastic Beanstalk로 웹 앱을 실행하고 관리할 수 있다. Lambda는 이벤트에 대한 응답으로 코드를 실행한다. 따라서, Computing이란 컴퓨터(서버)가 어떤 앱(코드)를 실행하는 것을 의미한다. Cost management 클라우드 서비스의 가상 서버나 서비스를 이용하면 이용료가 청구된다. Cost Explorer나 Budgets 및 비용 및 사용 보고서를 참고하여 고효율 저비용으로 관리하는 것이 비용 관리이다. Database 데이터 저장소. 1. 관계형 데이터베이스 - Aurora, RDS 데이터의 종속성을 관계로 표현하는 데이터베이스로, 테이블 구조를 이룬다. - 데이터의 ..
let num = [1, 2, 3]; let str = '' + `${num[0]}` + `${num[1]}` + `${num[2]}` + ''; - ${...} 안에 변수명을 넣는다. 배열 참조도 가능하다. - 이때 감싸는 따옴표는 반드시 backtick(`)으로 한다.
변수 선언 scope 변수 재선언 변수 재할당 특징 var function scope 가능 가능 let block scope 불가능 가능 ES6에서 추가됨 const block scope 불가능 불가능 ES6에서 추가됨 변수 재선언 var num = 100; var num = 200; // 에러 안남 let num2 = 100; let num2 = 200; // 에러!! 변수명 규칙 - 변수명, 함수명은 카멜 케이스 (ex. helloWorld) - 상수는 영문 대문자로 (ex. HELLOWORLD) - 생성자 함수는 대문자로 시작하는 카멜 케이스 (ObjectConstructor) - 지역변수는 언더바로 시작 (ex. _localVariable) - 전역변수를 사용하지 않는다. 자료형 리스트 데이터를 ..

이펙티브 자바는 개발자 필독서로 자주 소개되는 책으로, 자바 언어를 어떻게 활용해야 하는지 가이드라인을 제시해 준다. 나는 이 책을 두 번 도전하여 한 번은 완독에 실패했는데, 가장 큰 이유는 이펙티브 자바를 읽기에는 내가 자바 언어를 하나도 모르고 있었기 때문이었다. 물론 학부 과정에서 자바 프로그래밍을 배웠지만 이 책의 첫 Item부터 나오는 여러 디자인 패턴과 자바 개념들을 이해하고 넘어가기 부족했다. 그렇게 Item 4를 마지막으로 첫 도전을 포기했고, 당시 5기로 활동중이었던 SSAFY에서 자바를 다 배우고 난 뒤에 다시 한번 도전하기로 했다. 자바의 전체적인 내용을 복습한 뒤, 이펙티브 자바를 읽기 시작했다. 이전과 다른 점은 함께 책을 읽고 이야기할 사람들이 있었다는 점이다. 2월 말에 책읽..