일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- python
- C언어
- 프로그래머스
- 알고리즘
- Nodejs
- 구조체배열
- OpenCV
- TypeORM
- 코딩테스트
- @Autowired
- git
- 가상면접사례로배우는대규모시스템설계기초
- 스프링
- 카카오 코테
- nestjs typeorm
- AWS
- C++
- nestJS
- Spring
- 카카오 알고리즘
- 코테
- 해시
- 시스템호출
- @Component
- 카카오
- nestjs auth
- 컴포넌트스캔
- spring boot
- 파이썬
- thymeleaf
- Today
- Total
목록전체 (333)
공부 기록장 💻
인프런 - 스프링 핵심 원리 기본편 정리 지금까지 스프링 컨테이너를 생성하고, 구성 정보 AppConfig를 통해 객체들을 스프링 빈으로 등록하는 방법에 대해 배웠다. 그리고 스프링 컨테이너가 스프링 빈을 싱글톤으로 관리한다는 것 또한 이해하였다. 이번에는 스프링 빈을 직접 등록하지 않고, 스프링 컨테이너가 자동으로 스프링 빈을 등록하고, 의존 관계를 자동적으로 주입하도록 하는 컴포넌트 스캔에 대해 학습해보자. 직접 스프링 빈을 등록하는 방법 2가지 - @Bean과 xml 방식 기존에 스프링 빈을 등록하는 방법으로 다음의 두 가지를 학습하였다. 1. AppConfig에서 객체를 생성하는 메서드 위에 @Bean 어노테이션을 추가하는 방식 2. XML 파일에서 작성하는 방식 두 방법 모두 코드를 통해 각 객..
1월 31일, 인프런 최초로 누적 수강생 20만명을 달성한, 우아한 형제들의 개발 이사를 맡고 계신 김영한 님의 라이브 영상을 시청하며, 기억하고 싶은 내용들을 간단하게 아래 정리해보았다. 최근 스프링 프레임워크 공부를 시작하면서, 나도 20만명의 다른 개발자 수강생들과 마찬가지로 얼마 전, 인프런에서 김영한 님의 스프링 완전 정복 로드맵, JPA 로드맵 강의들을 구매하여 열심히 공부하고 있다. 나와 같은 IT 업계 취준생, 그리고 이직을 준비하고 있는 많은 재직자 분들이 사전에 남긴 답변들을 개인적이고 솔직하게 하나하나 답변해주시는 생방송에 직접 참여하며, 현재 인턴을 하고 있는 회사에서 어떻게 더 많이 배우며 개인적인 스프링 공부를 해 나갈 수 있을지, 또 이후의 취업 준비는 어떻게 해나갈 수 있을지..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
인프런 - 스프링 핵심 원리 기본편 정리 싱글톤 패턴에 기반하여, 하나의 인스턴스만 생성하여 공유하는 스프링의 싱글톤 컨테이너에 대해 이해해보자. 싱글톤이 왜 등장했는가? 스프링은 기업용 온라인 서비스 기술을 지원하기 위해 탄생했으며, 대부분의 스프링 애플리케이션은 웹 애플리케이션이다. 스프링과 같은 웹 애플리케이션은 보통 여러 클라이언트가 동시에 요청을 하는데, 각 고객이 요청을 할 때마다 새로운 객체를 생성하는 것은 효율적이지 않다. 테스트 지난번 스프링이 없는 순수한 DI 컨테이너인 AppConfig는 요청을 할 때마다 새로운 객체를 생성한다. 아래의 테스트 코드를 통해 memberService를 호출할 때마다 AppConfig의 memberServiceImpl 구현체 매번 생성하고 있음을 확인할 ..
이전에 AWS RDS Management Console에서 MySQL 인스턴스를 생성해 보았고, 이제 MySQL Workbench 와 연결하여 GUI 환경에서 데이터베이스 내 테이블을 생성하고 쿼리문을 실행해보도록 하는 작업을 수행해보자. delimo 라는 DB 식별자의 RDS 인스턴스의 대시보드는 다음과 같다. MySQL Workbench Connection 이제 MySQL Workbench에서 New Connection 을 생성하자. Connection name에는 DB test 를 입력해주었고, Hostname 입력 창에 RDS 인스턴스의 엔드포인트를 복사하여 붙여넣도록 하자. Username 에는 RDS 인스턴스 생성 시 만들었던 마스터 사용자의 이름을 입력해주면 된다. 인스턴스 생성 시 만들었던..
문제 상황 AWS RDS에서 MySQL 인스턴스를 생성 완료했지만, 명령 프롬포트에서 해당 서버에 접속하려고 하니 아래와 같은 에러가 발생하였다. ERROR 2003 (HY000): Can't connect to MySQL server on 'endpointxxx.ap-northeast-2.rds.amazonaws.com:3306' (10060) 원인 파악 검색해보니 이 글 에서 정확한 원인과 해결 방법을 설명하고 있어, 큰 어려움 없이 해결할 수 있었다. Causes This error states that the inbound/outbound traffic from the AWS instance is not reachable to the current host where the MySQL client..
AWS에서 제공하는 RDS 서비스를 이용해, MySQL 인스턴스를 생성해보자. 데이터베이스 생성 표준 생성 방식으로 데이터베이스를 생성하자. 엔진 옵션 MySQL 엔진을 사용할 것이기 때문에, MySQL을 선택하자. 템플릿 프리티어 제품을 사용하도록 하자. 인스턴스 구성 버스터블 클래스가 자동ㅇ으로 선택되며, db.t3.micro 옵션(자동)을 지정하자. 설정 DB 인스턴스 식별자에 DB 이름을 적어주고, 마스터 사용자의 이름은 간단하게 admin으로 지정했다. 마스터 암호도 제약 조건에 맞게끔 입력해주었다. 추후 웹 애플리케이션 설정 정보 config에 입력해 할 정보들이므로, 위 3가지 정보는 따로 보관해두자. 스토리지 기본 값인 범용 SSD(gp2) 스토리지 유형과 할당된 스토리지 200GB를 지정..
보호되어 있는 글입니다.
iter iter 단축키를 누르면 Iterate Iterable or array 기능을 수행할 수 있다. 위에서 선언된 배열 iteratable 을 참조하여 for-each 구문을 자동적으로 만들어준다. sout, soutv sout 은 System.out.println() 을 자동 완성하여 만들어주는 기능을 한다. 그중에서도, soutv 는 위에서 선언된 변수 variable 을 출력하는 기능을 한다. 아래와 같이 soutv를 사용한 경우, Sytstem.out.println("변수이름 = " + 변수) 와 같은 형태로 sout의 파라미터를 자동적으로 전달하도록 자동완성해준다.
인프런 - 스프링 핵심 원리 기본편 정리 그동안 설정(구성) 정보 클래스인 AppConfig에서 객체를 생성하고, 객체들 간의 의존 관계를 구성하며 주입하였다. 그리고 애플리케이션에서 사용하고자 하는 서비스는, AppConfig에서 생성한 서비스 객체를 참조하는 방식을 이용했다. Java Code를 통해 직접 DI를 주입했다면, 이번에는 스프링 컨테이너를 생성하고, 객체들을 스프링 빈으로 등록하여 스프링 컨테이너가 직접 객체들을 관리할 수 있도록 전환해보자. 본격적으로 스프링으로 전환을 해보도록 하자. 스프링 컨테이너의 계층 구조, BeanFactory와 ApplicationContext 우선 스프링 컨테이너의 계층 구조부터 살펴보자. 스프링 컨테이너의 상속, 계층 구조를 나타내면 다음과 같다. Bean..
기존에 https://dream-and-develop.tistory.com/358 에서 Spring Boot 프로젝트를 터미널에서 gradlew 명령어를 이용하여 Gradle 빌드 툴을 이용하여 빌드하고, jar 파일을 생성한 바가 있다. 이번에는 IntelliJ IDEA에서 빌드를 하고, jar 파일이 생성되는 과정을 눈으로 확인해보자. 우측의 Gradle 을 클릭하면 다음과 같이 hell-spring 에 대해 Gradle Tool 을 이용해 할 수 있는 작업들(Tasks)가 나타난다. build 디렉터리 내에 여러 작업을 수행할 수 있는 버튼이 있는데 우리는 다음의 순서로 작업을 실행할 것이다. 1) clean 2) build 3) jar 우선 clean을 누르게 되면, 좌측과 같은 프로젝트 구조를 ..
이전과 같이 로컬에서 IntelliJ에서 build한 스프링 프로젝트 애플리케이션을 띄우려 했는데, 다음과 같이 Port 8080 이 이미 사용 중에 있다는 Web server failed to start. Port 8080 was already in use. 라는 설명과 함께 오류가 발생하고 실행 종료가 되었다. 명령 프롬포트 cmd 창을 열어 nestat -ano 명령어를 치고, 로컬 주소에서 어떤 프로세스가 사용 중인지 확인을 해보자. TCP 프로토콜 0.0.0.0:8080 로컬 주소를 확인해보니, PID 3256 번의 프로세스가 실행 중임을 확인할 수 있었다. 이전에 다른 스프링 프로젝트를 실행하는 과정에서 jar 파일을 새로 생성하는 과정에서, 파일 실행을 눌러서 해당 8080 로컬 포트가 실행..
AWS 에서 제공하는 Elastic Beanstalk 서비스를 이용하여 Java의 내부 메모리를 이용하여 데이터베이스를 대체한, 간단한 Java Spring Boot 기반 회원 예제 서비스 애플리케이션을 배포해보자. 이 글은 medium에서 작성된 이 기술 블로그 글 을 참고하였다. 우선 배포하고자 하는 Spring Boot 애플리케이션의 application.properties에서 server.port=5000 을 적어주자. (AWS EB 공식 문서 에 의하면, Elastic Beanstalk은 Apache HTTPD를 역방향 프록시를 사용하여 애플리케이션 포트 80의 Elastic Load Balancing 로드 밸런서에 매핑한다. 기본적으로 Elastic Beanstalk은 요청을 포트 5000의 ..
Elastic Beanstalk 이란? AWS에서 제공하는 서비스는 100여개 이상이 있고, 다양한 서비스는 AWㄴ 인프라 관리 방법의 유연성을 제공하고 있지만, 구체적으로 어떤 서비스를 사용해야 하는지, 해당 서비스를 어떻게 프로비저닝하는지 그 방법을 파악하는 것이 까다로울 수 있다. 여기서 프로비저닝(Provisioning) 이란, 사용자의 요구에 맞게 시스템 자원을 미리 준비하여 필요시 바로 사용할 수 있도록 세팅하는 과정을 말한다. Elastic Beanstalk (EB) 은 Java, .Net, PHP, Node.js, Python, Ruby, Go, Docker을 사용하여 Apache Tomcat, Ngnix, Passenger, IIS와 같은 친숙한 서버에서 개발된 웹 애플리케이션 및 서비스..
보호되어 있는 글입니다.
인프런 - 스프링 핵심 원리 기본편 정리 회원, 주문과 할인 도메인을 설계하고 간단한 구현, 테스트를 해보았다. 고정 할인 정책에서, 새로운 정률 할인 정책이 등장함과 동시에, 객체 지향 원리를 적용하지 못한 기존 설계의 문제점을 파악하고 설계를 변경해 나가자. 그리고 좋은 객체 지향 설계의 원칙인 SOLID 원칙 중, 다음의 3가지 원칙을 적용해 나가는 과정을 이해해보자. 1. DIP (Dependency Injection Principle, 의존 관계 역전 원칙) - 구현체가 아닌 인터페이스에만 의존하도록, 외부에서 의존 관계를 주입하는 역할을 따로 분리하자. 2. OCP (Open-Closed Principle, 개방-폐쇄 원칙) - 클라이언트의 코드를 변경하지 않고, 구현체를 주입하는 외부의 코드..
보호되어 있는 글입니다.
보호되어 있는 글입니다.