공부 생각

11-17 이클립스 Run

doriver 2022. 11. 17. 20:28

컴퓨터가 뭐냐

일단 모니터 화면에 보여지는게 엄청 크지
동영상, 텍스트 정보, 컴퓨터게임
구글, 네이버, 카카오톡, 유튜브  
인터넷 뱅킹 , 쿠팡, 인터넷으로 결제하는거, 어플로 주식 매매하는거

 

그리고 컴퓨터 본체안에있는 하드웨어들

전기로 작동된다, 반도체들

 

그리고 프로그램(소프트웨어)들

코드(프로그래밍 언어)들의 모임,

하드웨어에게 사람이 명령하는 글,

 

사람은 자신의 아이디랑 비밀번호를 결정해 회원가입을 한다

사용자가 회원가입 버튼을 누르면, 입력받은 사용자의 정보를 DB에 저장해라

 

자 컴퓨터야 사용자가 아이디랑 비밀번호를 옳바르게 작성해서 로그인버튼을 누르면, 너는 사용자를 로그인 시키는거야 알겠지?

사용자가 로그인 버튼을 누르면
입력받은 (아이디, 비밀번호)가 DB에 있는지 확인해서 있으면 로그인 시켜라

 

로그인(login)이 뭐냐

login : 접속하다

log : 일지(기록), 일지에 기록하다, 항해하다

 

네이버 로그인, 구글 로그인, 카카오톡 로그인

네이버에 로그인 해볼까? 로그인을하려면 먼저 회원가입을 해야지

 

회원가입

네이버의 회원으로 가입을 한다

몇가지 동의하고, 아이디, 비번, 내이름, 생년월일, 성별, 이메일, 전화번호 등등 입력하고..  가입버튼클릭

나는 네이버라는 시스템속에  들어가겠다, 네이버 시스템에게 나의 정보를 바친다
네이버 시스템이 나의 존재를 알고있고, 네이버 시스템이 나에게 특정한 행위를 할수 있도록 허락해 준다.

난 지금부터 네이버라는 시스템속에서 몇가지 혜택을 누릴수도 있다

 

로그인을 한다

내 정보들이 보인다, 아이디 등등

난 이제 메일을 이용할수 있다, 그리고 내 블로그를 가질수 있다. 내가 블로그 글을 쓰면 다른사람들이 나의 블로그를 방문해서 여러 콘텐츠들을 볼수 있다. 그리고 네이버에서 물건도 살수 있게된다... 등등 뭐 많겠지

 

로그인이란 이런것이구나

어떤 시스템의 적극적인 회원이 되고, 시스템이 나에게 몇가지 행위를 할수 있게 허락한다.

어떤걸 허락할것인지는 시스템마다 다르겠지 

 

 

 

프로그램을 실행한다

코드들이 한줄한줄 실행되는거

 

 

 

이클립스 Run

특정 (main메소드가 있는)클래스 파일을 run

 

컴파일러가 소스파일을 클래스파일로 만든다
메모리에 loading됨(메모리에 물리적,논리적으로 배치됨)
자바 인터프리터가 클래스파일을 실행
main메서드의 호출로 시작해서, 첫문장부터 마지막 문장까지 수행하면 종료된다

 

Run 클래스이름
Run as java application - select java application - main메소드가 있는 클래스들 

Run Configurations

 

 

내가 Spring Starter Project(+ web)로 서버 구축한거

1. aws에 돌려놓은거

war export (프로젝트 코드를 WAR로)
프로젝트에 build.gradle에 war 빌드 속성을 추가 한다(plugins 항목에 id 'war` 을 추가한다) 
프로젝트이름Applicaton.java 에서 SpringBootServletInitializer 클래스를 extends 한다.

tomcat 서버를 키고, tomcat manager page에서
war파일을 업로드하고 , war파일을 배치한다

접속가능한 path를 웹브라우저 주소창에 입력한다
-> 내가 만든 프로젝트대로 웹브라우저에 나온다

 

대충 요약하면,
tomcat에 war파일 배치
tomcat서버를 킴
접속가능한 path를 웹브라우저 주소창에 입력 -> 내가 만든 프로젝트대로 웹브라우저에 나온다

2. sts에서 프로젝트를 Run As Spring Boot App

접속가능한 path를 웹브라우저 주소창에 입력 -> 내가 만든 프로젝트대로 웹브라우저에 나온다

 

 

내가 만든 웹 프로젝트에서 Run As Spring Boot App의 실행의 끝

STS에서 Spring Starter Project(웹 프로젝트)를 만들어서 Debug As Spring Boot App을 하면

콘솔창에 Started InvestApplication가 찍힌 뒤에

메인메소드의 마지막 } 로 간다음에 끝나지 않고, 여러 단계를 거친후

class RestartLauncher extends Thread { 

	~ ~
				~ ~
	@Override
	public void run() { 
        try {
                Class<?> mainClass = Class.forName(this.mainClassName, false, getContextClassLoader());
                Method mainMethod = mainClass.getDeclaredMethod("main", String[].class);
                mainMethod.invoke(null, new Object[] { this.args });
            }
            catch (Throwable ex) {
                this.error = ex;
                getUncaughtExceptionHandler().uncaughtException(this, ex);
            }
	} // 여기서 디버깅이 끝남
    
    ~ ~
    			~ ~
}

위 코드에 있는 클래스RestartLauncher의 메소드run()의 마지막 } 에서 실행이 끝남