MongoDB - (3) - CRUD 실습
개발/MongoDB2023. 4. 19. 05:52MongoDB - (3) - CRUD 실습

디비 확인 show dbs 컬렉션 확인 show collections 데이터 생성 db.movies.insertOne({"title" : "Stand by Me"}) 데이터 확인 db.moives.find() 컬렉션 삭제 db.movies.drop() 다중 데이터 생성 db.movies.insertMany([{"title" : "Ghostbuster"}, {"title" : "E.T."}, {"title" : "Blade Runner"}]); 조회 결과 여러 도큐먼트를 단일 컬렉션에 삽입하는데 매우 유용 얼마까지 데이터를 입력할 수 있는가? - 책 필자는 48MB 라고 언급 하지만 현재 실습환경 MongoDB 6.X 버전은 아래와 같음 MongoDB 6.X 버전의 임계 값 현재는 해당링크 에 100,00..

개발/MongoDB2023. 4. 18. 22:11MongoDB - (2) - CRUD와 데이터타입

//.mongorc.js var comliment = ["attractive, "intelligent", "like Batman"]; var index = Math.floor(Math.random()*3); print("Hello, you're looking particularly " +compliment[index]+ " today!"); var no = function() { print("Not on my watch."); }; //데이터베이스 삭제 방지 db.dropDatabase = DB.prototype.dropDatabase = no; //컬렉션 삭제 방지 DBCollection.prototype.drop = no; //인덱스 삭제 방지 DBCollection.prototype.dropInde..

개발/MongoDB2023. 4. 18. 21:21MongoDB - (1) - MongoDB 소개

본 포스팅은 아래 책을 학습한 과정을 담고 있습니다. https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=268367408 [전자책] MongoDB 완벽 가이드 몽고DB 입문자를 위한 기초부터 실제 배포에 적용할 수 있는 실용적이고 깊이 있는 내용까지 담았다. 개정 3판에서는 성능이 강화된 몽고DB 최신 버전을 반영해 복제와 샤딩을 더 깊이 다루며 개 www.aladin.co.kr 이번에 신규로 진행하는 프로젝트는 Notion, Google Sheet와 같은 Wiki Product 적인 성향을 띄고 있었고, 기존 RDBMS만으로는 문서형식의 데이터를 저장하기에 까다로운 측면이 있었습니다. 기존 MySQL, Maria, Postgres 등을 사용하여 "커뮤니티"와 같..

[이미지 리사이징] Lambda@Edge 502, 503 에러
개발/AWS2022. 4. 29. 01:58[이미지 리사이징] Lambda@Edge 502, 503 에러

어느덧 벌써 벡엔드 스린이로 활동한지 4주차가 되어가는 시점입니다.. 기본도 없이 시작한 백엔드가 많이 발전해나가는 모습을 보며 참으로 고생하고 있구나 싶습니다.. 오늘은 lambda@Edge로 이미지 리사이징을 하는 방법을 소개드리고, 제가 정말 삽질했던 부분을 코멘트 드리려고 합니다. 이 정도로 열렬히 삽질한 적은 오랜만이라,, 바로 글을 써서 많은 분들께 실낱같은 힘을 보태드려야겠다는 생각이 지배적인 순간입니다. Cloudfront, node.js를 사용하시며 502에러 503에러가 발생하신 분들께 바칩니다. + Lambda의 1MB 요청, 응답 제한과 base64 인코딩과 싸우셧던 분들도 도움이 되실겁니다. + 처음 작업하시는 분들도 도움이 되실 겁니다. (참고문헌 빵빵) 서론 우리는 서비스 내에..

Spring Web Layer(Dto?, Dao?)
개발/Spring2022. 3. 28. 13:58Spring Web Layer(Dto?, Dao?)

Web Layer 흔히 사용하는 컨트롤러(@Controller)와 JSP/Freemarket 등의 뷰 템플릿 영역 이외에도 필터(@Filter), 인터셉터, 컨트롤러 어드바이스(@ControllerAdvice) 등 외부 요청과 응답에 대한 전반적인 영역을 이야기함. Service Layer @Service에 사용되는 서비스 영역임 Service에서 비즈니스 로직을 처리하는 것이 아닌, Service는 트랜잭션, 도메인간 순서 보장의 역할을 수행함 일반적으로 Controller와 Dao(Data Access Object)의 중간 영역에서 사용함 @Transactional이 사용되어야 하는 영역임 Repository Layer Database와 같이 데이터 저장소에 접근하는 여역 기존에 개발하셨던 분들이라면..

테스트코드
개발/Spring2022. 3. 14. 20:00테스트코드

JUnit : 자바의 단위테스트를 위한 프레임워크 1. 테스트를 할 화면 창에 Ctrl + Shift + T 2. 아래 클릭 3. ok 클릭 4. 테스트 코드 생성 확인 5. 테스트 코드 작성 * assertEquals는 왼쪽에 예상되는 아웃풋, 오른쪽에는 내 아웃풋을 넣어줌 6. 함수만 실행 Ctrl + shift + F10 중앙 상단쪽에 Tests Passed를 확인할 수 있음. 7. 일부로 틀리기 ! 느낌표 하나로 테스트가 실패한 것을 볼 수 있음. 8. MockitoExtension 사용하기 package com.fastcampus.programming.dmaker.service; import com.fastcampus.programming.dmaker.code.StatusCode; import ..

Software Engineering
개발/Process2022. 3. 8. 20:10Software Engineering

S/W develope process Process : 일이 처리되는 과정이나 공정. S/W Process Model SDLC(S/W Developement Life Cycel) S/W를 어떻게 개발할 것인가에 대한 전체적인 흐름을 체계화 개발 계획 수립부터 최종 폐기까지 전 과정 Build and fix Model 장점 단점 단시간에 개발 가능 유지보수 어려움 Waterfall Model 단계별 결과물 정의가 중요 각 단계가 다음 단계 시작 전에 끝나야 함. 장 단 체계적인 문서화 각 단계는 앞 단계가 완료되어야 수행 가능 관리의 용이 설계에 많은 노력을 기울여야함 요구사항의 변화가 적은 프로젝트의 적합 중간에 가시적인 결과를 볼 수 없음. V model Waterfall Model에서 각 단계별 테스..

[Spring] Null Safety
개발/Spring2022. 2. 8. 22:23[Spring] Null Safety

객체에 Null을 담지 않도록 하자. 담아도 되는데 그 객체는 다시한번 쳐다보자. 제임스 고슬링 아저씨의 10억불짜리 실수인 Null은 항상 체크해야한다. 위 코드에서 만약 request가 null이면 NPE가 뜬다. 1. @NonNull Annotation 이거쓰면 위처럼 if문 걸어서 예외처리 안해도 된다. NonNull Annotation은 3군데 붙을 수 있는데 아래와 같다. 1. 파라미터에 NonNull Annotation을 줬기에 메서드 호출 시점에 Exception이 처리된다. 따라서 아래 if문은 없어도 된다. 2. 프로퍼티에 NonNull이 있다. 이 프로퍼티는 Null이 될 수 없는 프로퍼티가 된 것이다. 3. Method는 NonNull이기에 Null을 리턴할 수 없다. 2. @Nul..

[Spring] SpEL(Spring Expression Language)
개발/Spring2022. 2. 8. 22:10[Spring] SpEL(Spring Expression Language)

필요한 데이터나 설정 값을 얻어올 수 있게 하는 특별한 형태의 표현식에 가까운 간편한 언어 @Value("${config.value}")와 같은 방식으로 설정값을 주입 받는데 활용 1. SpEL의 값 평가(인식) Spel Parser는 ""안에 들어가있는 문자열을 평가(evaluation)해서 결과 값을 만들어 낸다. 문자열 리터럴로 인식되어 concat등 메서드도 가능하다. 위 case처럼 리터럴 값에 접근하는 경우보다는 아래와 같은 경우를 많이 사용할 것 이다. 2. Bean의 Property 설정 기본적으로 #{} 방식으로 property를 설정 ${server.hostname}처럼 $로 시작하는 것은 application.properties 혹은 application.yml의 값을 가져올 때 사용..

개발/Spring2022. 2. 8. 18:07[Spring] Resource

1. Resource 파일이나 설정 값에 접근하기 위한 인터페이스 public interface Resource extends InputStreamSource { boolean exists(); boolean isReadable(); boolean isOpen(); boolean isFile(); URL getURL() throws IOException; URI getURI() throws IOException; File getFile() throws IOException; ReadableByteChannel readableChannel() throws IOException; long contentLength() throws IOException; long lastModified() throws IOEx..

image