반응형 분류 전체보기1065 [TIL] : 78 일일 배움을 위한 Today I Learned ! Spring Boot 강의 완강을 마쳤고 오늘은 스터디가 있어서 스터디를 했다. 강의를 들으면서 원래는 따로 복습을 하면서 정리를 하는데 이번에는 집중해서 진도를 뺴느라 아직 복습 개념의 정리는 못 했다. 조만간 정리해서 올려야겠다. 코딩 & 리뷰 스터디 2회차를 진행했다. 스터디는 오프라인으로 진행하고 자세한 글은 아래를 참고하면 된다. 2022.01.12 - [발전소/동아리 및 스터디] - [코딩&리뷰] : 스터디 2회차 2022. 1. 12. [코딩&리뷰] : 스터디 2회차 스터디 2회차 스터디 2회차를 진행했다. 1회차 스터디를 하면서 피드백을 받은 부분을 보완해서 조금 다른 형태로 스터디를 진행하게 되었다. 우선 오늘은 팀원 중 한 분이 코로나에 확진되어 참여를 못 했고 다른 팀원 한 분은 오늘 일이 있어서 조금 늦게 오셨다. 공부한 자료를 노션에 올려 공유했고 따로 발표 자료를 PPT로 만들어 와서 발표했다. 사실 발표를 준비하면서 따로 공부를 했지만 발표만 하면 머릿속이 하얘지고 이게 어떻게 진행되는 로직인지 설명하면서 이게 맞나? 하는 생각이 들어 긴장된다. 그래도 코멘트를 참고해서 발표를 마쳤고 다른 쌤들의 발표도 들었다. 한 쌤은 스프링 작동 원리에 관한 내용을 발표하셨고 다른 쌤은 이펙티브 자바라는 책을 참고하여 공부한 내용을 발표하셨다. 코로나로 스터디에 참.. 2022. 1. 12. [TIL] : 77 일일 배움을 위한 Today I Learned ! Spring Boot 오늘은 스프링 부트 강의 진도 좀 뺐다. 하루 종일 들어서 이제 내일이면 완강할 것 같다. 코딩을 하면서 내용을 공부했는데 내용이 많아서 아직 머리 속에서 정리가 안 된다. 내일 진도를 한 번에 다 나가고 복습을 하면서 내용을 좀 다듬어야 할 것 같다. 덕분에 오늘은 블로그에 포스팅 한 내용 없이 TIL을 작성하게 되었다. 대신 오늘 강의와 같이 코딩한 내용은 Git Hub에 올렸다. 2022. 1. 11. [TIL] : 76 일일 배움을 위한 Today I Learned ! Python 파이썬 머신러닝 책에 있는 예제를 통해 데이터 분석 공부를 진행했다. 주피터 노트북에서 무언가 오류가 있는지 파일이 정상 작동 하지 않는 부분이 있어서 내일은 마저 하려면 오류를 수정하고 진행해야 할 것 같다. 이제 슬슬 이미지 그래프 파트로 진입하고 있다. 사실 요즘 스프링 부트 강의를 들으면서 복습하느라 진도가 거의 안 나가는 것과 비슷한 상태인데.. 노력해야겠다. 2022.01.10 - [프로그래밍언어/Python] - [Python] : [파이썬 머신러닝 실무 테크닉 100] : 데이터 로딩과 불필요한 항목 제외 2022.01.10 - [프로그래밍언어/Python] - [Python] : [파이썬 머신러닝 실무 테크닉 100] : 데이.. 2022. 1. 10. [Spring Boot] : lombok(롬복)라이브러리 추가 및 플러그인 설치하기 [Spring Boot] : lombok(롬복)라이브러리 추가 및 플러그인 설치하기 lombok 라이브러리 추가하는 방법 plugins { // 부트 버전이 표시되어 있습니다. id 'org.springframework.boot' version '2.6.1' // 의존관계 관련된 부분도 설정이 되어 있습니다. id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } // 처음에 설정한 스프링 부트 그룹 네임 설정 group = 'hello' version = '0.0.1-SNAPSHOT' // 자바 11 버전을 쓴다고 되어 있습니다. sourceCompatibility = '11' repositories { mavenCentral.. 2022. 1. 10. [Python] : [파이썬 머신러닝 실무 테크닉 100] : 데이터 전체 파악하기 [파이썬 머신러닝 실무 테크닉 100] : 데이터 전체 파악하기 analyze_data.describe() describe()는 수치 타입 항목을 집계해 준다. alyze_data.dtypes 데이터 타입을 조회해 보면 describe()로 조회된 항목은 int64 타입인 것을 확인할 수 있다. analyze_data[['store_id', 'coupon_cd']] = analyze_data[['store_id', 'coupon_cd']].astype(str) analyze_data.dtypes 데이터 타입을 변경해 줄 수도 있다. .astype(str)을 지정해 문자열 타입으로 변경한다. analyze_data.describe() describe()는 수치 타입 항목을 집계해 준다. alyze_data.. 2022. 1. 10. [Python] : [파이썬 머신러닝 실무 테크닉 100] : 데이터 로딩과 불필요한 항목 제외 [파이썬 머신러닝 실무 테크닉 100] : 데이터 로딩과 불필요한 항목 제외 전에 생성한 order_data.csv파일을 사용한다. import pandas as pd order_data = pd.read_csv('C:/Users/ojh96/output_data/order_data.csv') print(len(order_data)) order_data.head() order_data.csv파일을 읽어온다. order_data = order_data.loc[(order_data['status'] == 1) | (order_data['status'] == 2)] print(len(order_data)) order_data.columns loc를 통해 status가 1이나 2인 데이터만 추출한다. 1은 결제 .. 2022. 1. 10. [TIL] : 75 일일 배움을 위한 Today I Learned ! Spring Boot 스프링 부트를 공부했다. 우선 강의를 들으면서 코딩을 하고 교재를 참고해 정리하면서 내가 보기 좋은 방식으로 공부하고 있다. 이번에는 바이트코드 조작과 컴포넌트와 컴포넌트 스캔에 관한 내용을 공부했다. 2022.01.09 - [Framework/Spring Boot] - [Spring Boot] : @Configuration과 바이트코드 조작 2022.01.09 - [Framework/Spring Boot] - [Spring Boot] : 컴포넌트 스캔과 의존관계 자동 주입 2022.01.09 - [Framework/Spring Boot] - [Spring Boot] : 탐색 위치와 기본 스캔 대상 2022. 1. 9. [Spring Boot] : 탐색 위치와 기본 스캔 대상 [Spring Boot] : 탐색 위치와 기본 스캔 대상 [Spring Boot] : 탐색 위치와 기본 스캔 대상 @ComponentScan( basePackages = "hello.core", } basePackages를 통해 탐색할 패키지 시작 위치를 지정할 수 있고 이 패키지를 포함한 하위 패키지를 모두 조회하게 된다. basePackages = {"hello.core", "hello.service"}이렇게여러 시작 위치를 지정할 수도 있다. 보통 프로젝트 루트에 AppConfig 같은 메인 설정 정보를 두고 @ComponentScan 어노테이션을 붙여준뒤 basePackages 지정을 생략한다. 컴포넌트 스캔은 @Component, @Controller, @Service, @Repository, .. 2022. 1. 9. [Spring Boot] : 컴포넌트 스캔과 의존관계 자동 주입 [Spring Boot] : 컴포넌트 스캔과 의존관계 자동 주입 [Spring Boot] : 컴포넌트 스캔과 의존관계 자동 주입 스프링 빈을 등록할 때 자바 코드의 @Bean과 XML의 을 통해 설정 정보에 직접 등록할 수 있지만 등록해야 할 빈이 수백개가 넘어가면 하나씩 등록하기가 귀찮고 누락하는 문제도 발생하고 설정 정보도 커진다. 때문에 스프링은 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 @ComponentScan을 지원한다. 이에 맞춰 자동으로 의존관계를 주입해주는 @Autowired 기능도 제공한다. @Configuration @ComponentScan( excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classe.. 2022. 1. 9. [Spring Boot] : @Configuration과 바이트코드 조작 @Configuration과 바이트코드 조작 [Spring Boot] : @Configuration과 바이트코드 조작 @Test void configurationDeep() { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); AppConfig bean = ac.getBean(AppConfig.class); System.out.println("been = " + bean.getClass()); } AnnotationConfigApplicationContext에서 파라미터로 넘긴 값은 스프링 빈으로 등록이 되기 때문에 AppConfig도 스프링 빈이 된다. AppConfig 빈을 조회.. 2022. 1. 9. [TIL] : 74 일일 배움을 위한 Today I Learned ! Spring Boot 싱글톤 사용 시 주의 사항과 @Configuration이 싱글톤관 어떤 관계를 갖고 있는지 공부했다. 김영한님의 강의를 들으면서 상당히 요즘 만족하고 있다. 개강전에 로드맵을 끝낸다는 생각으로 공부하고 있다. 2022.01.08 - [Framework/Spring Boot] - [Spring Boot] : 싱글톤 사용시 주의해야 하는 것 2022.01.08 - [Framework/Spring Boot] - [Spring Boot] : @Configuration과 싱글톤의 관계 2022. 1. 8. [Spring Boot] : @Configuration과 싱글톤의 관계 @Configuration과 싱글톤의 관계 @Configuration과 싱글톤 @Configuration public class AppConfig { @Bean public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } @Bean public OrderService orderService() { return new OrderServiceImpl( memberRepository(), discountPolicy()); MemberService 와 OrderService 를 보면 new memberRepository() 를 호출한다. → 싱글톤이 지켜지지 않는다고 생각할 수 있다. @Test void con.. 2022. 1. 8. [Spring Boot] : 싱글톤 사용시 주의해야 하는 것 싱글톤 사용시 주의해야 하는 것 싱글톤 방식의 주의점 상태를 유지하게 설계하면 안 된다. 특정 클라이언트에 의존적 필드가 있으면 안되고, 값을 변경할 수 있는 필드가 있으면 안되고, 가능하면 읽기만 가능해야 한다. class StatefulServiceTest { @Test void statefulServiceSingleton() { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(TestConfig.class); StatefulService statefulService1 = ac.getBean(StatefulService.class); StatefulService statefulService2 = ac.getB.. 2022. 1. 8. [TIL] : 73 일일 배움을 위한 Today I Learned ! 오류 노트 오류 노트 하나를 추가했다. 2022.01.07 - [컴퓨터 공부/오류 노트] - [오류 노트] : (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape Spring Boot 스프링 부트에서 @Configuration과 싱글톤의 관계에 대해 공부하고 컴포넌트 스캔과 의존관계 자동 주입하는 것에 대해 코드를 통해 공부했다. 따로 자료를 정리해서 블로그엔 올리진 않았으나 깃 허브에 올려놨다. 2022. 1. 7. [오류 노트] : (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape 문제 주피터 노트북에서 판다스를 통해 csv 파일을 읽으려 했는데 위와 같은 오류가 뜬다. 해결 파일 경로에서 / 문자를 써줘야 하는데 \ 문자를 써줘서 그렇다. c:\ 가 아니라 c:/ ~ / ~ / 이런 형식으로 바꿔주면 된다. 2022. 1. 7. [TIL] : 72 일일 배움을 위한 Today I Learned ! AWS Ec2 우분투를 처음 써보는데 aws를 활용해서 데이터 베이스를 구축하고 스프링 프레임워크와 연동하는 작업을 해봤다. 어제도 연결을 했는데 ec2 우분투에서 데이터 조회를 해보니까 제대로 연동이 된 것이 아니였고 오늘 다시 시도해서 제대로 연동하고 테이블과 칼럼까지 생성해서 테스트까지 마쳤다. 2022.01.06 - [Server & System/AWS] - [AWS] : AWS Ec2 Ubuntu Mysql 외부 접속하기 Spring Framework Ec2 우분투에서 연동한 데이터 베이스가 정상적으로 작동하는지 테스트 코드를 작성해 보았다. 테스트 코드는 아직 익숙하지 않아서 구글링으로 찾아가면서 적용했다. 다행이 정상적으로 작동하는 것 까지 .. 2022. 1. 6. [Spring Boot] : 싱글톤 패턴 싱글톤 패턴 [Spring Boot] : 싱글톤 패턴 / 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴이다. public class SingletonService { //private로 외부에서 접근을 못 하게 하고 인스턴스를 스태틱 영역에 생성해서 올려둔다. private static final SingletonService instance = new SingletonService(); //public로 getInstance()를 통해서만 호출할 수 있도록 return을 instance로 준다. public static SingletonService getInstance() { return instance; } // 생서자를 private로 선언해서 외부에서 new를 통해 객체를 생.. 2022. 1. 6. [Spring Boot] : 웹 애플리케이션 문제 웹 애플리케이션 문제 [Spring Boot] : 웹 애플리케이션 웹 애플리케이션의 문제? 새로운 요청이 있을 때 마다 객체를 생성한다. → 비효율적이고 메모리의 낭비가 발생한다. 해결 방안 → 객체가 1개만 생성되도록 하고 그것을 공유하도록 설계한다. ⇒ 싱글톤 패턴이다. 출처 : 스프링 핵심 원리 - 기본편 - 인프런 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard (강의 내용을 참고로 개인 공부하여 올린 내용입니다.) 2022. 1. 6. [Spring Boot] : Bean Definition Bean Definition [Spring Boot] : Bean Definition 스프링 컨테이너는 BeanDefinition(빈 설정 메타정보)만 알면 된다. @Bean 당 각각 하나씩 메타 정보가 생성된다. 스프링 컨테이너는 이런 메타 정보를 기반으로 스프링 빈을 생성한다. BeanDefinition 자체가 인터페이스로 정의되어 있다. 때문에 스프링 컨테이너는 추상화에만 의존하는 셈이다. BeanDefinition은 어떻게 생성되나? AnnotationConfigApplicationContext 에 보면 AnnotatedBeanDefinitionReader 리더가 있는데 이 리더가 AppConfig.class를 읽고 BeanDefinition을 생성하게 된다.출처 : 스프링 핵심 원리 - 기본편 .. 2022. 1. 6. [Spring Framework] : MySQL 연동 Test Code 작성 및 확인 MySQL 연동 Test Code 작성 및 확인 데이터 베이스 테스트 코드 작성 mysql mysql-connector-java 8.0.19 junit junit 4.12 test 테스크 코드 작성을 위해 MySQL-Connector 라이브러리와 junit 라이브러리를 pom.xml에 추가하고 Maven Update를 진행해 준다. 프로젝트 아래 test 폴더를 생성하고 패키지 하나를 생성한뒤 MySQLConnectionTest 클래스를 생성해 준다. package crudProject01; import static org.junit.Assert.fail; import java.sql.Connection; import java.sql.DriverManager; import org.junit.Test; p.. 2022. 1. 6. 이전 1 ··· 33 34 35 36 37 38 39 ··· 51 다음 반응형