반응형 전체 글32 톰캣 서버 포트 죽이기 이클립스나 인텔리제이를 사용할 때 서버 오류가 뜬 경우가 있다. 처음에 이런 서버 오류가 떴을 때 오류 원인과 해결방법을 몰라 무작정 컴퓨터 재부팅을 하였다.(그땐 무식해서 문제가 발생하면 구글링 할 생각을 못했음) 이제는 문제가 발생하면 서치하다 보니 해결 방법을 터득했다. 우선 포트 서버를 죽여야한다. 서버를 죽이기기 위해 해당 포트의 PID를 알아야한다. cmd 창에 들어가서 netstat -a -o 명령어를 입력한다. 그후 해당 포트번호가 나온다. 맨 오른쪽에 pid도 함께나오는데 Ctrl + Shift + C를 통해 해당 PID를 복사해준다. (CMD에서는 Ctrl + C 가 안먹음 ) 그리고 아래와 같은 명령어를 입력한다. taskkill /f /pid [ 해당 pid ] 예를 들어 .. 예비개발자/오류 해결 2024. 6. 26. [스프링 핵심 원리- 기본편] 싱글톤 패턴4 싱글톤 패턴은 객체 인스턴스를 하나만 생성하도록 보장을 하는데 @Configuration public class AppConfig { // @Bean memberService() -> new MemoryMemberRepository() // @Bean orderService() -> new MemoryMemberRepository() @Bean public MemberService memberService(){ return new MemberServiceImpl(memberRepository()); } @Bean public MemoryMemberRepository memberRepository() { return new MemoryMemberRepository(); } @Bean public Order.. 예비개발자/SPRING 2023. 8. 29. [스프링 핵심 원리- 기본편] 싱글톤 패턴3 스프링 컨테이너가 싱글톤 패턴의 역할을 한다. 하지만, 특정 클라이언트가 값을 변경할 수 있는 필드가 있는 경우 오류가 발생할 수 있다. public class StatefulService { private int price; // 상태를 유지하는 필드 10000 -> 20000 public void order(String name, int price){ System.out.println("name = "+name+"price = "+price); this.price = price; //여기가 문제! } public int getPrice(){ return price; } } 주문을 할 수 있는 메소드와 주문한 가격을 반환 하는 메소드를 작성하였다. 그래서 정상적으로 작동하는 지 확인하기 위해 아래와 같.. 예비개발자/SPRING 2023. 8. 17. [스프링 핵심 원리- 기본편] 싱글톤 패턴2 싱글톤 패턴은 하나의 객체 인스턴트만 생성할수 있게 하여 메모리 낭비와 속도저하를 막는 패턴이다. 지난 포스팅에서 다루었듯이 싱글톤으로 생성하기 위해서는 몇 줄의 코드를 작성했어야 했다. 하지만 스프링 컨테이너가 이런 수고스러움 덜어주고 자동으로 객체 인스턴스를 하나만 만들도록 해준다. @Test @DisplayName("스프링 컨테이너와 싱글톤") void springContainer(){ ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); MemberService memberService1 = ac.getBean("memberService",MemberService.class); MemberService me.. 예비개발자/SPRING 2023. 8. 17. [스프링 핵심 원리- 기본편] 싱글톤 패턴 1 싱글톤 패턴에 대해서는 자바 프로그래밍 입문이라는 책을 공부했을 때 잠깐 접한 적이 있었다. 그때는 어영부영 지나갔는데 인강에서 싱글톤 패턴이라는 개념이 등장하였다. 싱글톤 패턴이 뭐냐? 이름에서도 알 수 있듯이 생성자가 여러 번 호출되도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴하는 패턴이다. 싱글톤 패턴을 사용하는 이유는 매번 생성자를 호출하다 보면 메모리 측면에서 낭비가 발생한다고 한다. 또한 과부하걸려서 속도가 느려진다. 하지만 요즘에는 컴퓨터가 좋아져서 별로 느낄 수없다고.... public class SingletonService { private static final SingletonService instance = new Sing.. 예비개발자/SPRING 2023. 8. 16. [스프링 핵심 원리- 기본편] 스프링 컨테이너에 상속 조회 package hello.core.beanfind; import hello.core.discount.DiscountPolicy; import hello.core.discount.FixDiscountPolicy; import hello.core.discount.RateDiscountPolicy; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Bean; import org.springframe.. 예비개발자/SPRING 2023. 8. 9. [스프링 핵심 원리- 기본편] 스프링 컨테이너에 등록하기 DIP, OP, SRP 원칙 등을 준수하기 위해 AppConfig를 만들었었다. AppConfig 덕분에 구체적인 조항 및 기능이 변경될 때 클라이언트 코드에서 손을 보지 않아도 됐었다. public static void main(String[] args) { AppConfig appConfig = new AppConfig(); MemberService memberService = appConfig.memberService(); OrderService orderService = appConfig.orderService(); } AppConfig에 있는 구체적인 기능을 클라이언트 코드에서 사용하기 위해 위처럼 직접적으로 사용하였다. 하지만 스프링 컨테이너에 등록하여 사용해보자! @Configuration .. 예비개발자/SPRING 2023. 8. 6. [오류 해결] 아나콘다 3.10 버전 다운로드 & 3.11 최신 버전 오류 해결 학원에서 아나콘다를 받을 때는 3.10.9 버전을 받았었다. 이 버전 때가 오류가 없고 파이토치를 정상적으로 사용할 수 있기 때문이다. 며칠 뒤 집에서 노트북으로 아나콘다를 다운 받고 파이토치까지 정상적으로 다운받았는데 파이토치가 임포트가 안되는 것이다. 뭐가 문제지 싶었는데 아마 최신 버전을 다운받았기 때문에 파이토치가 임포트가 안된 것 같다. 그래서 다운그레이드하는 방법을 찾아 시도했지만 계속 3.11 버전이었다. 그래서 다시 재설치 하기로 했다. 우선 재설치하기 앞서 제어판에 들어가 아나콘다를 제거하였다. 그 후 기존 C드라이버 폴더에 있는 anaconda3라는 폴더도 함께 제거했다. 그 후 3.10 대 버전을 다운 받기 위해서 인터넷을 서칭한 결과 https://www.softlay.com/dow.. 예비개발자/DEEPLEARNING 2023. 8. 6. [스프링 핵심 원리- 기본편] AppConfig의 기능 public class AppConfig { public MemberService memberService(){ return new MemberServiceImpl(memberRepository()); } private static MemoryMemberRepository memberRepository() { return new MemoryMemberRepository(); } public OrderService orderService(){ return new OrderServiceImpl(memberRepository(), discountPolicy()); } public DiscountPolicy discountPolicy(){ return new RateDiscountPolicy(); } } 위 코.. 예비개발자/SPRING 2023. 8. 6. [스프링 핵심 원리- 기본편] 좋은 객체 지향 설계의 5가지 원칙 (SOLID) 정보처리기사 실기를 준비하면서 배웠던 내용 중 하나인 좋은 객체 지향 설계의 5가지가 스프링 인강에도 나왔다. 복습 겸 정리를 해봤다. SOLID : 클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리 1) 단일 책임 원칙(SRP: Single Respoinsibility Principle) - 한 클래스는 하나의 책임만 가져야 한다. - 하나의 책임이라는 것은 모호하다. 클수도 있고 작을 수도 있다. 문맥과 상황에 따라 다르다. - 중요한 기준은 변경이다. 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것. ex)UI변경, 객체의 생성과 사용을 분리 - 이와 반대되는 예시를 들자면 하나의 파일에 view, DB, 쿼리와 관련된 코드를 다 넣는 것. 2) 개.. 예비개발자/SPRING 2023. 8. 1. [딥러닝] 파이토치 설치, 딥러닝 기본 개념 정리 IT 교육 수업 중 딥러닝을 배웠을 대 파이토치를 import하여 배웠었다. 정확하게 파이토치가 어떤 기능과 어떤 장점을 알지는 못하였지만 사용했었다. 수업을 들었음에도 불구하고 아직까지 파이토치와 딥러닝에 관한 기본 개념이 부족하여 복습 겸 정리하고자 한다. 파이토치는 딥러닝을 구현하기 위한 하나의 라이브러리이다. 케라스 등 다른 라이브러리가 있지만 파이토치가 후발 주자로 사용하기 간편하여 사람들이 많이 쓰는 것 같다. 실제로 학원에서 수업을 들으면서 거의 파이토치 라이브러리만 임포트 하였던 것 같다. 파이썬 설치 직접 설치하기 | 파이토치 한국 사용자 모임 (pytorch.kr) 파이토치 한국 사용자 모임 (PyTorch Korea User Group) 파이토치 한국 사용자 모임에 오신 것을 환영합니.. 예비개발자/DEEPLEARNING 2023. 8. 1. [ 오류 해결 ] 인텔리제이 포트 변경 방법 스프링 공부를 위해 인프런 인강에서 김영한 강사님의 수업을 듣고 있을 때였다. 인강을 들으면서 똑같이 타이핑을 친 것 같은데 이상하게 실행이 잘되지 않았다. 강의 문의 게시판에서 나와 비슷한 문제를 가진 사람들을 글을 참고하여도 해결되지 않았다. 이때 문뜩 한 생각이 스쳐갔다. 혹시 포트가 잘못된 건가?? 지금 내 노트북에는 오라클, MySQL, 이클립스, Visual Studio Code 등 다양한 프로그램이 깔려져 있다. 오라클도 이클립스와 포트가 충돌되서 포트를 바꾼 경험이 있었다. 그래서 인텔리제이를 포트를 바꾸기로 했다. 인텔리제이에서 Run - Edit Configurations 카테고리에 들어간다. Enviroment varialbes 에 들어가서 서버 포트를 변경한다 내 기억상 8080과 .. 예비개발자/SPRING 2023. 4. 19. 이전 1 2 3 다음 반응형