분류 전체보기

CS/디자인패턴

[Design Pattern] 디자인 패턴이란?

디자인 패턴이란 무엇인가?소프트웨어 개발에서의 디자인 패턴은 소프트웨어 개발의 일반적인 문제에 대한 해결책으로, 모든 프로그래밍 언어 및 업계의 개발자가 자주 직면하는 문제에 대한 해결책이다. 디자인 패턴은 시간이 지남에 따라 일종의 표준이 된 모범 사례로 소프트 웨어 업계에서 널리 알려져있으며, 고유한 이름을 갖고있는 것들이 존재한다. (빌더, 파사드 등등) 즉, 디자인 패턴은 아키텍처를 사용할때- 코드를 더 깔끔하고  확장 가능하게- 유지 관리하기 쉬운 방식으로 구성하도록도움이 된다. 다음에 팀을 옮기거나 회사에 입사할 때어떤 패턴이 사용되고 있는지 파악하고 코드베이스를 더 빨리 이해할 수 있고,새로운 프로젝트를 시작하는 경우 더욱 더 견고하게 프로젝트를 구축할 수 있다. 디자인 패턴 종류생성(Cre..

Project/팀프로젝트

[TeamMate] spring boot에서 S3, Mock S3을 이용해서 배포 서버, 로컬 환경에서 이미지 업로드 하기

이전에 올린 포스팅에서 처럼 이번 팀 프로젝트 때 S3를 이용해 이미지 업로드 기능을 구현하였습니다. 배포 서버에 S3 서버를 더해 이미지 업로드를 하는 것은 비교적 쉬웠으나, 로컬 환경에서 이미지 업로드를 테스트 하기 위해 S3 mock을 이용하는 것은 참조 자료가 test 코드에만 사용하거나, 로컬 환경에서만 s3 mock을 사용하는 경우만 있어서 조금 어려웠습니다.. 그래서 저는 배포 서버에서는 S3을 이용하고, 로컬환경에서는 임베디드 Mock S3을 이용한 것을 설명하려고 합니다. 도움이 되었던 참조 자료 : https://willseungh0.tistory.com/139 로컬에서 임베디드 S3 사용하기 파일 업로드와 S3 파일 업로드 기능을 구현할 때, 주로 확장성이 좋은 AWS에서 제공하는 S..

CS

[IT 정보] On-premises 컴퓨팅 vs 클라우드 컴퓨팅

On-premises 컴퓨팅(온프레미스 컴퓨팅)이란? 온프레미스 컴퓨팅 방식이란 이전에 클라우딩 컴퓨팅 방식이 존재하지 않을때 일반적으로 기업에서 인프라를 구축하는 방법이라고 합니다. 인프라 구축이란 다양한 분야에서 사용되는 언어인데 기업이 일을 할 수 있는 기반을 다져놓는다고 생각하면 됩니다. 즉, 기업이나 조직이 필요한 기술적 인프라(기반)를 설치하고 구성하는 프로세스를 의미하죠. 이는 기술적인 부분에서 주로 하드웨어, 소프트웨어, 네트워크, 데이터 저장소 및 관리 시스템 등을 포함해서 사내 전산실을 구축한다는 의미와 같습니다. 이렇게 온프레미스는 기업 자체의 공간에서 직접 설치되어 운영되는 것입니다. 예를 들어 A기업에서 컴퓨터로 작업하기 위해 소프트웨어, 하드웨어, 데이터 저장소 등이 필요한 데 ..

데이터베이스

[MongoDB] 에러 :com.mongodb.MongoQueryException: Query failed with error code 2 with name 'BadValue' and error message 'Field 'locale' is invalid in: { locale: "collection이름" }' on server ~.mongodb.net:27017 at com.mongodb.internal.operation.FindO..

에러 상황 앞전에 글에서 간단하게 mongoDB를 연동시키고 값을 iinsert하지 않은 상태에서 전체 list를 조회하는 controller와 service를 구현해서 api 테스트를 진행하는데 저런 에러가 나왔다. 뭘 잘못쓴게 없는데 왜 이런 에러가 나올까 찾다가... 이전에 구글링으로 한국분이 kotlin 쓰시면서 똑같은 에러를 목격했고 해결했다고 하셨지만 내가 제대로 읽지 못해서 또 헤맸다.. 이 링크는 나랑 똑같은거 연습하시는 분이 똑같은 에러를 목격해서 반가워서 남긴다.. https://www.mongodb.com/community/forums/t/getting-this-error-while-accessing-collection/234538/8 Getting this error while ac..

데이터베이스

[MongoDB] mongoDB를 intelliJ에 연동하기 + 거기에 mysql까지 2개의 데이터베이스 연동 -2

프로젝트 구조 프로젝트 구조 설명없이 하는 블로그들이 많은데 궁금한 사람 입장에서 불편했기 때문에 내 프로젝트 구조를 보여주겠다. 여기서 봐야할 것들은 MongoConfig, docs/entity폴더 그리고 SharedDocsApplication, application.yml, application-db.yml이다. 프로젝트 파일별 설명 build.gradle plugins { id 'java' id 'org.springframework.boot' version '2.7.5' id 'io.spring.dependency-management' version '1.1.4' } group = 'com.example' version = '0.0.1-SNAPSHOT' java { sourceCompatibilit..

데이터베이스

[MongoDB] mongoDB를 intelliJ에 연동하기 + 거기에 mysql까지 2개의 데이터베이스 연동 -1 : mongoDB Atlas, Compass 다운로드 및 설정

TMI 잡담 팀프로젝트에서 공유 문서단 개발을 진행하기로 한 나는 가닥이 하나도 잡히지가 않아서 팀프로젝트에 냅다 브랜치 쳐서 작업하기에는 자신이 없었다. 그래서 팀원들께 양해를 구해 혼자 레파지토리에 일단 연습해보기로 했다. 시간은 이번주 금요일 멘토링 시간 전까지 ... 어제(11/28)부터 시작하기로 했는데 내가 인텔리제이 터미널에 함부로 아무 생각없이 git config --global credential.useHttpPath true git config --list git config --global credential.useHttpPath true 이 명령을 썼는데 내 그 해당 폴더가 삭제가 되지 않았다.. 내가 달리한건 저 명령어밖에 없기때문에 저걸로 뭔가 권한 설정이 된것 같았다... 여기..

코테/프로그래머스

[프로그래머스 PCCP] Lv1 9번 이웃한 칸

문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/250125?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr so easy~ 알고리즘 연속적으로 가야하는 문제도 아니고 단순히 위,아래,좌,우 만 살펴봐서 쉬웠다. boolean[] isVisited 배열 생성해서 체킹할 필요도 없고 그냥 배열 인덱스에서 문제 없을 때만 체크하고 String 값이 같은지만 확인하면 됐다. 해결 방법 static int[] dh = {0, 0, 1, -1}; static int[] dw ..

코테/프로그래머스

[프로그래머스 PCCP] Lv1 10번 데이터 분석

문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/250121?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 왜 1번에서 바로 10번을 푸냐면 그냥 레벨 순으로 풀고 싶기 때문이다. 별 이유 없다. 이 문제는 너무 쉬웠다. 이런 문제만 코테에 나오면 좋겠다 ㅎㅎ 알고리즘 기준 값(ext, val_ext)과 정렬할 값(sort_by)가 4가지 중에 나오므로 map의 key로 두고 그 배열들의 index 값으로 기준 값보다 작은 것들을 넣고, 정렬해야겠다고 생각을 했다...

코테/프로그래머스

[프로그래머스 PCCP] Lv1 1번 붕대감기

문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/250137 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이거 풀어봤던 문제인데 간신히 풀었다.. 알고리즘 우선순위 큐를 이용해서 풀었다. 우선순위 큐 정렬 조건을 attack 의 attack[0]을 기준으로 시간이 빠른 순으로 정렬한 뒤 담아두고 공격을 하는거다. 시간은 0초 부터 전위 연산자를 사용해서 항상 카운팅이 되게했고 우선순위 큐에서 가장 앞에 있는 값(시간이 빠른 공격 값)이 될때 까지 붕대감기 기술을 시전하는 시간 cnt를 후..

Project/토이프로젝트

[개인 프로젝트 회고] CafeApp

프로젝트 Github 주소 https://github.com/HanSeulChung/CafeApp GitHub - HanSeulChung/CafeApp: CafeApp REST API CafeApp REST API. Contribute to HanSeulChung/CafeApp development by creating an account on GitHub. github.com -> 해당 github에 readme.md에 프로젝트 기능 설계와 ERD를 기록해놨습니다. 프로젝트 개요 카페앱: ' 해당 카페의 메뉴(음식, 음료, MD 굿즈)를 미리 결제하고 주문하는 서비스'을 개인 프로젝트으로 약 4주간 진행했다. 개인적으로 정말 애착이 갔던 프로젝트이다. 왜냐하면 내가 백엔드에 대해서 관심이 깊어진 것이 ..

three von
'분류 전체보기' 카테고리의 글 목록 (3 Page)