분류 전체보기 139

자바의 구동 원리와 JVM(Java Virtual Machine)

자바 프로그램의 구동 원리 소스코드를 작성한다. (.java 확장자의 소스 파일) 컴파일러(javac.exe)가 바이트코드로 변환한다. (.class 확장자의 클래스 파일) 런처(java.exe)로 자바 가상 머신을 구동시킨다. 자바 가상 머신이 바이트코드를 해석하여 자바 프로그램이 실행된다. 위 순서에서 바이트코드(bytecode)는 자바 가상 머신이 이해할 수 있는 언어로 변환된 코드다. 자바 가상 머신만 설치되어 있다면 바이트코드는 어떤 운영체제에서라도 실행될 수 있다. 자바 가상 머신(JVM) 일반 프로그램은 "운영체제"가 프로그램을 실행시킨다. 반면 자바 프로그램은 운영체제가 JVM을 실행시키면 "JVM"이 프로그램(클래스 파일)을 실행시킨다. 즉, 자바 프로그램의 클래스 파일들은 운영체제에서 ..

Backend/Java 2022.01.26

Git이란? (feat. Git의 브랜치 전략)

버전 관리 시스템은 크게 2가지 방식이 있다. 과거에는 중앙집중식 위주로 버전을 관리하다가, 요새는 분산식으로 많이 이용하는 추세이다. 분산식 버전관리의 대표적인 예가 바로 Git 이다. 중앙집중식 (Central Control System) : CVS, Subversion 분산식 (Dynamic Control System) : Git 중앙집중식은 중앙 서버에서 별도로 파일을 관리한다. 클라이언트는 중앙 서버에서 파일을 받아서 사용(checkout)하는데 만약 중앙 서버가 다운되면 답이 없다(..) 반면 분산식은 클라이언트는 저장소를 전부 복제한다. 그래서 서버가 다운되어도 이 복제물로 다시 작업을 시작할 수 있다. 즉, 클라이언트 중에서 아무거나 골라도 서버를 복원할 수 있다. 게다가 Github 같은..

WebSquare5 유튜브 동영상 출력하기

웹스퀘어에서 유튜브 영상을 재생하기 위해 기능을 구현하다보니 작은 시행착오가 발생해서 이를 기록해두려고 한다. video 태그로 구현 웹스퀘어API 에서는 video 컴포넌트가 명시가 되어있어서 해당 컴포넌트를 사용할 수 있다고 생각했으나, 아직 video 컴포넌트를 정식 지원하지 않는다고 한다. 따라서 해당 object에 직접 접근할 수 없고, $("#video1")와 같이 jQuery 방식을 이용하여 접근해야 한다. var url = "https://youtu.be/dP0hwfPJoa4"; $("#video1").attr("src", url); 유튜브의 단축url로 구현 위와 같이 jQuery 방식으로 구현했는데도 영상이 재생되지 않았다. 찾아보니 유튜브 같은 경우는 iframe을 대신 사용해야 한다..

Frontend/WebSquare 2021.03.25

JavaScript 웹으로 SNS 공유하기 구현 예제(트위터, 페이스북, 카카오톡)

웹에서 SNS로 콘텐츠를 공유하는 기능을 구현해야 할 때가 있다. 트위터, 페이스북, 카카오톡 같은 SNS에서는 이를 공유하는 기능을 제공하고 있다. 이 기능으로 이미지, 링크, 멀티미디어 등 다양한 콘텐츠를 공유할 수 있다. 아이콘 추가하기 이미지 버튼으로 보여줄 아이콘 이미지를 다운로드 받는다. (트위터, 페이스북, 카카오톡의 아이콘 이미지) CSS 추가하기 다운받은 아이콘 이미지를 적용하기 위해 아래 CSS를 추가한다. 각 이미지 버튼에 아이콘을 매핑하는 작업이다. .link-icon { position: relative; display: inline-block; width: auto; font-size: 14px; font-weight: 500; color: #333; margin-right: 1..

Frontend/JavaScript 2021.03.24

JavaScript 텍스트를 클립보드로 복사하는 방법

텍스트 복사하는 기능은 웹으로는 어떻게 처리할까? execCommand 기능을 이용하여 매우 쉽게 구현할 수 있다. JavaScript로 구현하기 let dummy = document.createElement("textarea"); document.body.appendChild(dummy); dummy.select(); // 복사할 URL 선택 document.execCommand("copy"); // 클립보드에 복사 document.body.removeChild(dummy); // 복사한 URL 선택 풀기 alert("URL이 클립보드에 복사되었습니다"); 웹스퀘어에서 구현하기 ibxObj.select(); // 복사할 URL 선택 document.execCommand("copy"); // 클립보드에 ..

Frontend/JavaScript 2021.03.24

노트쓰기로 당신의 천재성을 끌어내세요.

1. 노트는 정자체로 쓰세요. 생각이 폭주할 수록 천천히 또박또박 쓰세요. 2. 노트는 반드시 다시 보세요. 더 새로운 생각이 탄생합니다. 3. 처음 20%를 단숨에 몰아쓰세요. 그러면 끝까지 쓸 확률이 높아집니다. 4. 큰 노트도 좋지만, 작은 수첩이 좋습니다. 더 꼼꼼하게 생각을 담을 수 있습니다. 천재는 새로운 시대를 열어가는 사람이고, 일등은 시대에 적합한 사람이다. 천재는 노트가 만들었다. 출처 : 이재영 교수님 - 세바시 890회

WebSquare5 웹스퀘어 시작하기

최근 프로젝트에서 WebSquare를 처음으로 사용하게 되었다. 프로젝트에서 사용하기 위해 WebSquare 공부를 시작하지만, 이 점을 항상 명심하려고 한다. 편하게 제공된 UI 툴을 쓰다 보면, 화면을 찍어내는 느낌과 웹 기술에서 점점 퇴보되가는 느낌을 받는다고 한다. 따라서 회사에서 UI 툴을 쓰더라도, 회사 밖에서 의식적으로 react, vue 등의 기술을 공부하는 습관을 들이자. 지금부터 유튜브 사용자 가이드, API를 통해 WebSquare의 기본적인 사용법을 적어보려고 한다. 웹스퀘어 인스웨이브사에서 만든 웹스퀘어는 웹표준을 따르는 UI/UX 개발툴로 현재 버전 5까지 나와있다. 함께 언급되는 툴로는 투비소프트의 Nexacro, xPlatform, 토마토시스템의 eXbuilder 등이 있다...

Frontend/WebSquare 2019.12.27

Putty로 원격 서버에 접속해서 Tomcat 로그 확인하기(catalina.out)

나는 CentOS 7 서버 내의 Tomcat의 로그를 확인하고 싶었다. 그러기 위해선 원격으로 서버에 접속한 뒤, Tomcat 로그를 담는 catalina.out 파일을 확인해야 한다. 지금부터 Putty를 이용해서 로컬 컴퓨터에서 원격 서버로 접속한 뒤, 톰캣 로그를 확인해보려고 한다. 1. 원격 서버의 IP 주소 알기 먼저, 내가 접속하려는 원격 서버의 IP 주소를 알아야 한다. 서버에서 터미널을 열어 아래 명령어를 치면 해당 서버의 IP 주소가 나올 것이다. ifconfig 2. Putty 설치하기 Putty 프로그램을 이용하여 원격 서버에 접속을 할 것이다. Putty 사이트에서 자신의 운영체제에 맞는 파일을 설치한다. 기본 설치 경로는 C:\Program Files\PuTTY 이다. 설치가 끝나..

아나콘다, 텐서플로, 케라스 설치후 주피터 노트북 실행하기

최근 머신러닝에 접할 일이 생겨 배운 것을 기록해보려고 한다. 지금부터 아나콘다, 텐서플로, 케라스를 순서대로 설치하고 주피터 노트북을 이용하여 간단한 예제를 실행해보려고 한다. 아나콘다 설치(Anaconda) 최신 버전: 3.7 설치한 아나콘다 버전 : 4.5.4 설치한 아나콘다 속 파이썬 버전 : 3.6.5 파이썬에는 다양한 라이브러리가 존재한다. 파이썬에서 딥러닝을 실행할 때 필요한 라이브러리가 있는데 아나콘다를 좀 더 쉽게 접근할 수 있다. 보통 일반적인 파이썬은 기본적으로 패키지 관리 시스템인 pip만 포함하고 있지만, 아나콘다는 딥러닝에 용이한 것들이 포함되어 있고 파이썬도 내장되어 있다. 즉, 아나콘다는 아래처럼 파이썬(내장) + 유명한 패키지들을 함께 설치할 수 있도록 합쳐놓은 것이다. 아..

텐서플로 오류 해결 - Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated.

문제 발생 아나콘다에서 텐서플로를 설치한 후, 제대로 설치되었는지 확인하기 위해 아래의 단계를 실행하였다. pip install tensorflow # 텐서플로 설치 ipython import tensorflow # 텐서플로 설치 확인 그랬더니 아래와 같은 FutureWarning이 발생했다. FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`. from ._conv import register_converters as _register_co..