본문 바로가기

내가 당면한 문제와 해결방안

이번생에 자바는 처음이라서...

부제) 자바 웹 어플리케이션이 구동되면 어떤 일이 발생할까요?




는 거짓말이다. 여러분 이거 다 거짓말인거 아시죠?~~~ 

사실 학부 때에 시작을 C++로 그 후 자바를 조금 배우긴 했다. 상속을 한다 ... 이정도만 기억난다.  정말 흐린기억속의 그대 자바...  C++은 include iostream인가 이것만 기억남 ㅇㅇ   자바는 컴파일러란 원시 언어에서 목적 언어로 바꾸는 작업을 하는 것을 말함. 컴파일러로 변환된 코드는 별도의 파일로 저장된다.(JAVA같은 경우는 .java 파일을 컴파일 하면 .class 파일이 나옴.)  이런것도 기억나네...






회사에서 앞으로 개발할 어플리케이션이 자바 프레임워크로 해야할것같은데.... 스프링이라거나... 스프링부트라거나....

스프링부트는 먼지도 몰른다 .....  둘의 차이는 ? 어슴푸레하게 넘겨짚어 보자면. 환경설정이 쉽다거나, 자동설정된 부분이 많다는 것??? 


2015 자바카페 OPEN SEMINARFeatures
WSA 의존 없이 Stand-Alone 형태의 Spring 어플리케이션을
만들 수 있다.
Embedded Tomcat을 이용하여 즉시 실행이 가능하다.
(WAR 파...




임베디드 톰캣... 어노테이션 기반 configuration... 

war 파일이란 또 뭘까? ㅡㅡ -> https://dololak.tistory.com/31




또 스프링부트 특징.


빌드하면 단일 jar 파일이 생긴다.

  • Web 어플리케이션의 경우, 내장 Tomcat을 시작 (Jetty와 Undertow로 전환 가능).
  • Web 응용 프로그램이 아니라 보통의 Java 프로그램으로도 동작하게 할 수 있다.



출처: https://araikuma.tistory.com/8 [프로그램 개발 지식 공유]




ㅅ ㅓ블릿???? 서ㅓㅓㅓㅓㅓㅓ브ㅡㅡㅡㅡㅡㅡㄹ리ㅣㅣㅣㅣㅣㅣㅣㅣㅣㅣㅅ????






서블릿이랑 서블릿 컨테이너가 하는일 궁금해서 https://finerss.tistory.com/entry/%EC%84%9C%EB%B8%94%EB%A6%BF-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88Servlet-Container (그림 및 설명) 서블릿은 그냥 서버에서 실행되는 프로그램이라고 생각하기로














~ 아무튼 스프링부트 시작해보긔 ~


1. 음. 일단 괜히 왜? 스럽지만 vscode에서 스프링부트 프로젝트를 생성했다...ㅎㅎ vscode 에서도 되긴 되네요~~  착하지~~ 우쮸쮸 


아델라킴 ㅋㅋ  맥북 vscode 기준으로  커맨드 + 쉬프트 + P 를 누르고 Debug: Start with 디버깅이던가 디버깅없이 스타트거나.. 취향껏 돌려주면 댐



현ㅈ ㅐ 내 맥북이가 돌리는 자바버전은 이겁니다







2. 내 demo 프로젝트의 pom.xml 을 보면 


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>


이렇게 jpa web같은 설정이 추가되어있다. 이거는 동영상보고 그대로 따라 만든것이라 프로젝트 생성할때, 고대로 추가한 설정부분이다.


jpa 는 또 뭐야?  ㅇ //////// ㅇ 



아 ~ ORM 표준 인터페이스구낭 이걸 근데 따로 추가해조야대? 레일즈는 어떻게 햇엇즤? 흠 








3. 그래서 로컬에서 "/hello"를 요청하면 시나리오가 이렇게 될거같다.








ㅎㅔ로쿠 서버에서 카페 IP가 바로 찍힌다. 헤로쿠 서버로 올린 디렉토리에서 바로 헤로쿠 콘솔으로 클라우드 서버에 붙을 수 있는듯







+ 남아있는 궁금증

스프링부트가 stand-alone인게 특징이면 스프링은 어떻길래 그런건가? 



참고자료

http://blog.wishket.com/q-%EC%9B%B9-%EA%B0%9C%EB%B0%9C%EC%9D%98-%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8%EC%99%80-%EC%84%9C%EB%B2%84-%EC%95%8C%EA%B3%A0-%EA%B3%84%EC%8B%9C%EB%82%98%EC%9A%94/ 


https://www.jetbrains.com/help/idea/deploying-a-web-app-into-an-app-server-container.html


https://code.visualstudio.com/docs/java/java-spring-boot


https://www.slideshare.net/whiteship/ss-108533045


application.properties 를 수정할때 / https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html

JPA란 / https://onemooon.tistory.com/entry/JPA-JPA%EB%9E%80 

JPA란 / https://blog.woniper.net/255


몬가 깔끔한 정리글 / https://developer.ibm.com/dwblog/2017/spring-boot/


JSP 라던지 Velocity 라던지 / http://millky.com/@origoni/post/1144


스프링도 핫 리로딩이 있네? spring-boot-devtools  모듈을 이용하여  / https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/html/howto.html#howto-hotswapping

'내가 당면한 문제와 해결방안' 카테고리의 다른 글

프로토콜/스킴/SNI/telnet/ssh  (0) 2019.02.22
multer 의 사용  (0) 2019.02.12
스프링부트를 공부하는 여정  (0) 2019.02.09
정보처리기사 대비  (0) 2019.02.05
git log 옵션  (0) 2019.01.25