목록전체 글 (395)
Just Do IT!

H2 Database를 사용하는 이유?H2 DB는 In-Memory DB로 스프링 애플리케이션과 함께 실행되며, 매우 가벼운 용량을 가지고 있다.복잡한 mocking 없이도 서비스 및 레포지토리 레이어를 테스트할 수 있기 때문에 mocking으로 인한 부분적인 오류나 가짜 성공(실 서비스에서는 오류가 발생하지만 mocking으로는 성공으로 표기되는 상황)을 방지할 수 있다.테스트 과정에서 데이터가 영향을 받지 않도록 한다.만약 다른 Database를 사용하는 경우, 테스트 데이터가 롤백되어 DB에 남아있지 않아도 auto increment로 지정한 id가 계속 증가되는 등의 문제가 발생할 수 있다.=> 테스트용 DB가 따로 필요하다.기존 Database 대신에 H2 Database를 이용하여 테스트를 하..
Vite란?빠르고 간결한 모던 웹 프로젝트 개발 경험에 초점을 맞춰 탄생한 빌드 도구개발 시 네이티브 ES Module을 넘어 더욱 다양한 기능을 제공번들링 시 Rollup 기반의 다양한 빌드 커맨드 사용 가능높은 수준으로 최적화된 정적 리소스들을 배포할 수 있게 미리 정의된 설정을 제공미리 bundle을 만든다필요한 소스코드만 건드린다. 공식 문서https://ko.vitejs.dev/ ViteVite, 프런트엔드 개발의 새로운 기준ko.vite.dev Create-React-App의 단점node_modules 용량이 크다빌드 속도가 느리다.UX나 SEO 측면에서도 좋지 않다.bundling이 느리다Webpack을 사용하는데 이는 라이브러리가 많은 경우 번들링이 오래 걸린다. CRA는 더이상 ..

지난번, KOSTA에서 교육 과정을 듣게 되었다며https://daydream-sy.tistory.com/311 프론트엔드 개발자 준비를 하다가 백엔드 개발자 준비로 전향했다작년에 내일배움캠프를 수료하고 꽤나 많은 일들이 있었다.우선 가장 큰 일은, 내가 개발자라는 직업을 본격적으로 준비하게 되었다는 점. 42서울 라피신 과정을 진행할 때까지만 해도 개발자daydream-sy.tistory.com이런 글을 작성했었다. 그 이후 시간이 제법 흘러서 어느덧 최종 프로젝트를 하는 기간이 되었다.항상 프론트엔드 파트만 맡았었고, 내배캠 최종 프로젝트 이후 제대로 프로젝트를 한 적이 한 번이라 이번에는 제대로 해보고자 마음 먹었는데 다행히도 2주차까지는 잘 진행되고 있다. 1. Github 활용하기이번 프..

코딩 컨벤션해당 언어로 작성된 프로그램의 각 측면에 대한 프로그래밍 스타일, 관행 및 방법을 권장하는 특정 프로그래밍 언어에 대한 일련의 지침 (출처: 위키백과) 코딩 컨벤션을 사용해야 하는 이유소프트웨어 개발 비용의 80%는 유지보수에 쓰인다.소프트웨어 유지보수는 직접 개발한 개발자가 하는경우가 적다.코딩 규칙을 지키면 다른 사람도 코드를 더 빠르게 이해하고 가독성이 높아진다.즉 같은 컨벤션을 쓰는 사람끼리 서로 코드의 이해도가 향상된다. 따라서 협업하고 유지보수할 때 훨씬 더 가독성이 좋고 간편하다.그렇기 때문에 이번 프로젝트에서 인텔리제이 초기 세팅하고 시작하면서 아예 설정하기로 결정했다. JAVA의 코딩 컨벤션의 종류NAVER : 캠퍼스 핵데이 Java 코딩 컨벤션Google : Goog..

프로젝트를 위해 인텔리제이 유료 버전을 설치했다.설치하는 과정을 담은 블로그들은 많으니 생략하고, 프로젝트를 위해 설치한 플러그인을 정리해보려고 한다. 1. Atom Material Icons 프로젝트 구조 (패키지, 폴더, 파일 등)를 아톰 IDE 디자인을 적용해 아이콘 모양을 바꿔주는 플러그인이다. 적용하면 이렇게 모든 파일을 잘 구분할 수 있게 해준다. 2. Grep Console 콘솔창에 각각 상황별로 색상을 넣어서 좀더 가독성을 편하게 해줄 수 있다 settings > other settings > grep console 을 클릭해서 색상을 변경할 수 있다.나는 아직 프로젝트를 실행해본 적이 없어서 대충 작성했는데 추후에 변경할 예정이다. 3. Git Tool Box 협업 할 때 ..

UML (Unified Modeling Lanuage) 소프트웨어 시스템을 개발하는 과정에서 산출물의 명세화, 시각화, 문서화할 때 사용하는 모델링 언어로써 하나의 시스템을 표현하기 위한 표준적인 방법을 제공하기 위해 만들어졌다. UML 다이어그램의 종류구조클래스 다이어그램 (Class Diagram) : 클래스의 속성, 함수, 변수 타입들로 구성된 다이어그램객체 다이어그램 (Object Diagram) : 클래스의 인스턴스, 값이 매겨진 행동을 가지고 있는 독립된 객체 정보를 표현하는 다이어그램패키지 다이어그램 (Package Diagram) : UML의 다양한 모델 요소를 그룹화한 다이어그램컴포넌트 다이어그램 (Component Diagram) : 컴포넌트끼리의 구조 관계를 표현한 다이어그램배치 다..

Docker소프트웨어 컨테이너 기술을 제공하는 플랫폼으로, 애플리케이션과 그 의존성들을 격리된 환경에서 실행할 수 있게 해준다.애플리케이션을 효율적으로 개발, 배포, 실행할 수 있다.다양한 운영 체제 및 클라우드 환경에서 동일한 방식으로 동작하므로 개발 환경과 프로덕션 환경 간의 일관성을 제공한다 Docker의 주요 개념, 구성 요소이미지 (Image)애플리케이션과 그 실행에 필요한 모든 것을 포함하는 가볍고 독립적인 패키지파일 시스템, 라이브러리, 실행 환경 및 애플리케이션 코드 등을 포함하고 있다.컨테이너 (Container)이미지의 실행 가능한 인스턴스격리된 환경에서 동작하며, 호스트 시스템과는 독립적으로 실행된다.각 컨테이너는 자체 파일 시스템, 프로세스, 네트워크를 가지며, 호스트 및 다른 컨테..

요즘 docker 실습을 가상머신에서 하고 있다.가상머신 설치 관련은 TIL 레파지토리에 이미 정리해서 블로그에도 정리해야 하나 고민 중이라,우선은 내가 진행했던 프로젝트를 빌드해보는 걸 정리하려고 한다.가상머신 설치 관련 정리:https://github.com/seoyeon-jung/kosta-study-log/blob/master/16%EC%A3%BC%EC%B0%A8/240924/README.md kosta-study-log/16주차/240924/README.md at master · seoyeon-jung/kosta-study-logKOSTA TIL. Contribute to seoyeon-jung/kosta-study-log development by creating an account on Gi..

트래픽이 많은 웹사이트의 서버(AWS)를 도와주는 비동기 이벤트 기반 구조의 경량화 웹 서버 프로그램클라이언트로부터 요청을 받았을 때, 요청에 맞는 정적 파일을 응답해주는 HTTP Web Server로 활용된다Reverse Proxy Server로 활용하여 WAS의 부하를 줄일 수 있는 로드밸런서 역할을 수행할 수 있다 이러한 특징을 이해하기 위해서는 아래의 흐름을 먼저 이해해야 한다. 클라이언트서비스를 이용하기 위해 네트워크를 통해 요청을 보내는 주체웹 개발 영역에서는 보통 크롬, 사파리, 익스플로러 등 웹 브라우저를 의미한다. 웹 서버클라이언트와 서버 간의 통신을 처리하며 웹 애플리케이션을 호스팅할 수 있게 해주는 소프트웨어클라이언트의 HTTP 요청을 받아 정적 or 동적으로 웹 페이지를 제공해주는 ..

OAuth2 로그인 과정 (예시에는 google이지만 다른 소셜 서비스도 가능) 구글 로그인google cloud에서 앱 생성하기OAuth 동의 화면에서 앱 등록범위 설정OAuth Client ID 만들기 서버에 올리지 않았기에 localhost:3000을 추가해주었다. 카카오 로그인kakao develop에 앱 추가redirect URI 추가REST API key, 보안 키 설정 위의 과정을 거치고 나면, 해당 프로젝트에 필요한 것들을 모두 세팅할 수 있게 된다.그리고 이제 코드로 구현하면 된다. Java 코드 구현 [백엔드]User entity 수정public class User implements UserDetails { @Column(nullable = true) priva..