반응형

JAR & WAR
java 기반의 application의 배포 형태이다.
JAVA JAR TOOL을 이용하여 압축한 압축 파일이다. ( 즉, 둘이 같은 압축 형태 )
JAR와 WAR는 사용 목적이 다르다.

JAR (Java ARchive)
path 정보를 유지한 상태로 압축한다.
자바 클래스 파일과, 각 클래스들이 사용하는 관련 리소스파일 및 메타데이터을 압축한 파일이다.
실제로는 ZIP 파일 포맷으로 압축된 파일이다.

 

WAR (Web application ARchive)
웹 어플리케이션을 어떻게 설정할 지에 대한 정의가 있는 web.xml 파일이 있다.
자바 서버 페이지, 자바 서블릿, 자바 클래스, XML, 파일, 태그 라이브러리, 정적 웹페이지(HTML 관련 파일) 및 웹 application을 구성할 때 필요한 자원을 압축한 jar 파일이다.

JAR , WAR 압축 구조


 

jar는 주로 java 라이브러리나 excutable jar 를 위해서,
war는 was 실행시 웹서비스를 위한 파일로 사용.

 

반응형

'IT' 카테고리의 다른 글

nginx 윈도우 설치  (0) 2020.10.21
CentOS8 설치  (0) 2020.10.08
Oracle VirtualBox 설치  (0) 2020.10.07
인프라 구성도 예시  (0) 2020.09.24
반응형

느끼하지 않고 깔끔한 맛!!

반찬은 김치, 동치미, 오뎅 이렇게 3가지 ㅋㅋ
모듬사리에 사이다가 포함되어 있을줄이야 ㅎㅎㅎ

일반 프렌차이즈 부대찌개와 다르게 너무 애쓰지 않은 느낌이랄까?? 
진짜 원조 부대찌개는 이런 맛 이구나 ㅎㅎㅎ

맛 : ​★​★​★​★
가격 : ​★​★​★​★★
재방문의사 : ★​★​★​★​
총평 : 개개인에 따라 호불호가 갈릴 수 있겠다.
        양념이나 재료가 과하지 않은 깔끔한 맛이지만, 프렌차이즈에 길들여진 입맛에는 몬가 부족하다고 느낄 수 있음.
        거리가 먼것이 단점이지만, 우연히 지나게 되면 꼭 다시 들리고 싶음.

 

반응형

'라이프 > 맛집' 카테고리의 다른 글

망원동 텐동 맛집, 이치젠  (0) 2020.10.09
반응형

nginx 다은로드
URL : nginx.org/en/download.html

안정화된 버전인 Stable Version을 다운로드 한다.


압축을 풀고 nginx.exe를 더블클릭한다.

아래 작업관리자에서 프로세스가 실행됨을 확인할 수 있다.

브라우져에 http://localhost 로 접근하면 아래와 같은 화면이 보인다. 성공!!

 

서비스 종료는 작업관라자에서 "작업끝내기" 를 하거나,
아래 CMD 창에 명령어를 입력한다.

cd nginx-1.8.1
nginx.exe –s stop

 

 

 

반응형

'IT' 카테고리의 다른 글

JAR 와 WAR 차이점  (0) 2020.10.26
CentOS8 설치  (0) 2020.10.08
Oracle VirtualBox 설치  (0) 2020.10.07
인프라 구성도 예시  (0) 2020.09.24
반응형


AI(인공지능) 
 - General AI : 일반적인 인공지능 사람처럼 다재다능한 인공지능을 말함
 - narrow AI : 단 한개만 할줄 알고, 집중하는 범위가 적은것
                 예) 페이스북 얼굴인식, 알파고 

머신러닝 : AI 를 교육시키기 위한것
 - Supervised Learning : 다양한 라벨을 정해주면 확률을 통하여 판단하도록 함
 - Unsupervised Learning : 인간이 데이터를 주입하지 않음, 기계로 하여금 스스로 알아내게 만듬


딥러닝 : 머신러닝을 달성하기 위한 방법
 인간의 뇌처럼 작동하는 알고리즘. 인텐시프한 프로세스라서 프로세싱 파워가 많이 필요함. 
 딥러닝은 구글, 테슬라에서 많이 사용함, 엄청난 규모의 데이터와 프로세싱 파워를 위한 자본이 있음
 파이썬을 통하여 텐서플로우를 살펴보도록, 텐서플로우는 ai를 위한 프레임워크로 이미 커뮤니티가 많이 만들어둠.

반응형

'IT > 용어' 카테고리의 다른 글

SSH (Secure Shell Protocol)  (0) 2020.10.07
가상머신  (0) 2020.10.07
Pilot  (0) 2020.09.24
POC (Proof Of Concept : 기술 검증, 개념 검증)  (0) 2020.09.24
BMT(Bench Marking Test)  (0) 2020.09.24
반응형

이클립스가 버벅거리면 메모리 상황을 보면서 코딩할 필요가 있다.

 

Window > Preference 클릭

하단에 메모리 전체사이즈와 사용량이 표시되고, 휴지통 버튼을 클릭하면 메모리가 임시로 비워집니다.

반응형
반응형

윈도우10은 아주 간단하게 유선으로 연결된 노트북을 WIFI 중계기로 설정할 수 있습니다. ㅎㅎㅎ

1. 모바일 핫스팟 이라는 설정창을 띄우고, 빨간색 부분을 "끔"에서 "켬"으로 변경

2. "편집" 버튼을 클릭해서 WIFI이름과 비번을 설정하면 끝!!

자 이제 핸드폰 와이파이 설정으로 가면 해당 이름의 WIFI가 짠~!! 

 

참 쉽죠잉~ ^^

반응형
반응형

Lombok은 자바 컴파일 시점에서 특정 어노테이션으로 해당 코드를 추가할 수 있는 라이브러리입니디. 이는 코드의 다이어트? 가독 성 및 유지 보수에 많은 도움이 됩니다. 하지만 편리한 만큼 잘못 사용하기 쉬운 것이 Lombok 입니다.

1. 설치하기
Lombok 홈페이지로 이동하여 다운로드. ( http://projectlombok.org/download )
다운로드된 jar파일을 실행한다.

자동으로 로컬에 설치된 eclipse와 sts를 찾아주는데 "Install / Update" 버튼을 클릭하면 설치 완료된다.

eclipse나 sts폴더로 가면 lombok.jar 파일이 생성되어 있을것이며, ini 환경파일에 아래와 같은 코드가 추가된다.

2. 사용하기
간단하게 어노테이션만 추가하면 된다.
@Data 어노테이션만 추가했는데, Outline에 getter/setter/toString 메소드가 보인다.

3. 사용시 주의점

@Data는 지양 하자
@Data는 @ToString, @EqualsAndHashCode, @Getter, @Setter, @RequiredArgsConstructor을 한번에 사용하는 강력한 어노테이션 입니다. 강력한 어노테이션인 만큼 그에 따른 부작용도 많다고 생각합니다.

무분별한 Setter 남용
위에서 언급했듯이 @Data를 사용하면 자동으로 Setter를 지원하게 됩니다. 그로 인해서 생기는 문제점들이 있습니다. 
간단하게 정리하면 Setter는 그 의도가 분명하지 않고 객체를 언제든지 변경할 수 있는 상태가 되어서 객체의 안전성이 보장받기 힘듭니다. 예를들어 email의 변경 기능이 제공 되지 않는다고 가정한다면 email 관련된 setter도 제공되지 않아야 안전합니다. 단순 안전함을 넘어서 해당 객체가 자기 자신을 가장 잘 표현하는 구조 즉 email의 변경 포인트를 제공하지 않음으로써 email 변경 기능이 없다는 것을 표현한다고 생각합니다.

ToString으로 인한 양방향 연관관계시 순환 참조 문제
두 객체가 서로 참조할 경우 ToString을 호출하면 무한 순환 참조가 발생합니다. JPA를 사용하다 보면 객체를 Json으로 직렬화 하는 가정에서 발생하는 문제와 동일한 이유입니다. 이 처럼 무분별하게 @Data를 사용하게 되면 이러한 문제를 만나기 쉽습니다.

4. 결론
많은 개발자 환경과 빌드에 해당 라이브러리를 추가하는 작업을 별도로 해야하고, 명시적이지 않게 자동으로 무언가를 해준다는것 자체도 별로 맘에 들지 않는다!
마지막으로 이클립스에서 자동으로 getter/setter/toString 정도는 잘 만들어 주자나!!

그래서 쓰지 않기로 합니다!!

 

 

 

 

반응형

'IT > JAVA' 카테고리의 다른 글

[JAVA] JAVA 버전별 특징  (0) 2020.09.24
반응형

2020-10-13 부터 시작!!
올해안에 서버단 프레임웍 구축을 목표로 달려봅니다.

상세기능 
 - DB 연동 (H2, postgresql, redis)
 - 시큐리티, OAuth2
 - RestAPI
 - Batch

반응형
반응형

티스토리에서 글작성하는 에디터에서는 엔터를 입력하면 크게 한줄이 내려가는 현상이 있다.
바로 내려쓰는 방법을 찾았다!!

바로 "Shift + 엔터"

그냥 엔터시 <P>태그가, Shift + 엔터시 <BR>태그가 입력되는 것으로 보여진다.

 

 

반응형
반응형

트레이딩 봇을 만들기 위해서 수많은 거래소의 API를 분석하고 성능을 테스트 해봤습니다.
그 결과, 가장 제 입맛에 맞는 API를 제공하는 곳은 업비트 였습니다. 

업비트는 시세조회 뿐 아니라 매매주문, 출금, 입금까지 제공하고 있으며,
JSon형식의 데이터를 Http를 통하여 주고받으며, Node, Python, Ruby, Java 개발환경 셈플소스까지 함께 제공합니다.

우선 업비트 API 사이트에 방문해 보도록 하겠습니다.
업비트에 접속하고(upbit.com/home), 맨 하단으로 스크롤을 내리면 아래와 같이 Open API라는 작은 메뉴를 발견할 수 있습니다.

"Open API사용하기" 버튼과 업비트 "개발자 센터"가 보입니다.


"Open API를 사용하기"는 API 송수신시 보안을 위하여 개인 Public/Privite Key를 발급해 줍니다.
카카오톡 본인인증을 통하여 들어가면 아래와 같은 화면을 만날 수 있습니다.

API를 통해서 수행하는 업무를 선택하고(모두 선택), 출발지 IP를 입력한 후에 "Open API Key 발급받기" 버튼을 클릭합니다.

발급받고 나면 하단에 ACCESS_KEY 발급현황이 보이고, 유효기간, 선택한 기능과 허용된 IP주소가 보입니다.
ACCESS_KEY는 만기되거나 사용권한에 따라 여러번 발급되지만, SECRET_KEY는 한번만 발급되므로 잘 보관하시기 바랍니다. 

"업비트 개발자 센터"는 API 개발 문서를 제공합니다. 기술지원도 가능하다고 하는데, 저의 경험으로 상당히 느리고 불친절 했던 기억이 나네요;;; 큰 기대 안하시길 바랍니다 ㅎ

 

"GET STARTED" 버튼을 클릭하면 아래와 같이 간단한 API사용법과 요청 수 제한 등 기본적인 정보를 제공합니다.

 

하지만, 우리는 시세조회나 주문이 필요하기 때문에 "API Reference"로 이동합니다.

이제 제법 개발자에게 익숙한 화면이 보입니다 ㅎㅎㅎ
천천히 API문서를 둘러보시기 바랍니다.

본인에게 익숙한 언어를 골라서 소스를 분석하고, 우측으로 보이는 JSon 데이터를 보면서 데이터 구조를 이해하시기 바랍니다.
셈플코드가 워낙 잘 되어 있어서, 발급받은 KEY만 입력하면 바로 실행됩니다 ^^

참 쉽죠? ^^

 

다음 강의에는 스프링 부트 프로젝트를 생성하고, 기본적인 마켓 코드 조회와 시세 캔들 조회를 해 보도록 하겠습니다.
감사합니다. ^^

 

 

 

반응형

+ Recent posts