Ajax
Asynchronous Javascript Xml을 말한다.
Javascript의 비동기통신(XmlHttpRequest)을 사용해 웹 브라우저의 페이지를 전환하지 않은 채 일부를 수정함으로써 편의성을 높여주는 기술이다.
대표적인 사용법으로는 구글맵의 지도를 움직이거나 지도에서 가게 정보를 표시하는 것을 예로 들 수 있다.
Asynchronous Javascript Xml을 말한다.
Javascript의 비동기통신(XmlHttpRequest)을 사용해 웹 브라우저의 페이지를 전환하지 않은 채 일부를 수정함으로써 편의성을 높여주는 기술이다.
대표적인 사용법으로는 구글맵의 지도를 움직이거나 지도에서 가게 정보를 표시하는 것을 예로 들 수 있다.
참고
Maven은 Java 프로젝트의 전체적인 라이프 사이클을 관리하는 도구이다. 이전에는 Ant가 사용되었스며, 최근에는 Gradle이 사용되고 있는 추세이다. 이는 Apache License로 배포되는 오픈 소스 소프트웨어이다.
Maven Lifecycle이란 Maven에서 미리 정의하고 있는 빌드 순서를 의미한다. 그리고 라이프 사이클의 각 빌드 단계를 Phase라고 한다. 또한 이런 각 Phase들은 의존관계를 가지고 있다.
Maven은 plugins을 구동해주는 프레임워크이다. 모든 작업은 플러그인에서 수행한다. 플러그인은 저장소에서 관리된다.
Maven은 여러 plugins로 구성되어 있으며, 각각의 플러그인은 하나 이상의 goal(명령, 작업)을 포함하고 있다. Goal은 Maven의 실행단위이다.
mvnw라고도 불리는 Maven Wrapper는 Apache Maven을 프로젝트에서 요구하는 버전으로 유지하기 위해 사용하는 도구이다. 복잡해지는 빌드 환경을 Maven Wrapper를 이용해 해결할 수 있다.
참고 : http://copycode.tistory.com/39?category=740133
컴퓨터의 대부분을 관리하는 역할을 한다. 운영체제는 컴퓨터 하드웨어를 잘 관리하여 성능을 높이고 사용자에게 편의성을 제공하는 프로그램이다.
컴퓨터를 구성하고 있는 기본적인 요소는 CPU, 메인 메모리, 하드디스크이다.
CPU는 컴퓨터에서 연산을 담당하고, 메인 메모리는 컴퓨터에서 작동하고 있는 프로그램인 프로세서들을 저장, 관리한다. 컴퓨터를 키기 전에는 운영체제는 하드디스크에 존재하지만, 컴퓨터를 켰을 때, 하드디스크에 있는 운영체제가 메인 메모리로 올라가게 된다.
이러한 동작을 하는 곳은 메인 메모리이다. 메인 메모리는 원래 RAM인 휘발성 메모리로 컴퓨터가 꺼지면 자료를 모두 날려버린다. 컴퓨터를 킬 때 운영체제를 올리는 프로그램까지 날려버리면 운영체제는 하드디스크로 올라올 수 없게 되므로, 메인 메모리에 작은 부분은 부팅을 위한 ROM인 비휘발성인 부분으로 지정되어 있다. 그러면 운영체제가 컴퓨터를 제어하기 시작한다.
운영체제는 시스템 콜과 인터럽트에 의해서 움직인다.
시스템 콜이란, 컴퓨터가 필요한 작업을 수행하기 위해 운영체제에 어떤 일을 요구하는 요청이다.
인터럽트는 하드웨어 인터럽트와 소프트웨어 인터럽트로 나누어진다. 인터럽트가 실행되면 운영체제 내의 코드가 실행되고 Interrupt Service Routine을 하게 된 후 다시 대기하는 상태가 된다.
ATMega 328칩 외부에는 전압 조정기(5V로 조정), 수동 회로요소(passive components), 입출력연결단자로 구성되어 있다.
IDE에서 작성된 프로그램은 칩에서 사용하는 유일한 프로그램이다.
인터프리터도 필요없고, 운영체제도, 펌웨어도 필요없다.
C코드는 기계어로 컴파일되어 칩에 실리게되며 아두이노에서 작동된다.
(동그라미 안쪽의 램프가 깜빡거리도록 프로그래밍 되어있음)
아두이노는 소형 제어장치(MicroController)이다.
라즈베리파이는 싱글보드컴퓨터라고 불린다. 약어로 SBC라고 한다.
보드의 소형처리장치(Microprocessor)는 음향, 영상, USB, 이더넷 및 HDMI까지 지원한다.
라즈베리파이에서는 프로그램을 써서 하드웨어를 직접 제어하지 않고, 운영체제가 깔려있어 운영체제 내에서 프로그래밍을 한다.
라즈베리파이의 운영체제는 통상적으로 리눅스를 사용한다.
둘 다 명령을 수행하는 중앙처리장치(CPU)가 있다.
이는 타이머(Timer)와 기억장치(Memory), 입출력 핀(I/O Pin) 등이 들어있다.
여기서 입출력 핀은 소형제어장치(MicroController)가 강점을 가지고 있다. 그래서 소형제어장치가 하드웨어를 직접적으로 제어한다.
하지만 소형처리장치(Microprocessor)는 입출력 부분이 약한 경향이 있어, 트랜지스터가 하드웨어를 다루게 된다.
예를 들면, 모터를 동작하거나, 글자를 표시하는 LCD, 센서를 제어하는 것과 같은 제어 중심의 프로젝트라면 아두이노와 같은 소형제어장치(MicroController)로 제어하는 것이 좋다.
그러나 비디오, 카메라, 복잡한 수치계산, 그래픽 처리에는 라즈베리파이가 더 적합하다고 볼 수 있다.
제어가 중심이면 아두이노가 더 낫고, 데이터를 처리해야 한다면 라즈베리 파이가 더 좋다.
참고 : http://andrew0409.tistory.com/82
sudo apt remove openssh-serversudo apt install openssh-serveretc/ssh/sshd_config 파일 수정하기
Port 2222UsePrivilegeSeparation noPasswordAuthentication yes : ssh keys 설정시 다시 no로 바꾸기sudo service ssh --full-restartsudo service ssh startvi sshd.bat 만들기C:\Windows\System32\bash.exe -c "sudo /usr/sbin/sshd -D" 추가mv ssh.bat /mnt/c/Users/YourUserName/Documents. 로 파일 위치 옮기기vi sshd.vbs 만들기 Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run Chr(34) & "C:\Users\YourUserName\Documents\sshd.bat" & Chr(34), 0
Set WinScriptHost = Nothing
mv sshd.vbs /mnt/c/Users/YourUserName/Documents.로 파일 위치 옮기기Port 2222 허용 및 작업 스케쥴링으로 sshd.bat, sshd.vbs task로 추가하기sudo visudo로 들어가서 %sudo ALL=NOPASSWD: /usr/sbin/sshd 추가하기 -> 패스워드 요구하는 설정 뺴는 작업위 작업은 https://gist.github.com/dentechy/de2be62b55cfd234681921d5a8b6be11 에서 참고하였습니다.
zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git
vim ~/.zshrc plugins 부분에 설치한 플러그인 입력 ``` plugins=( git zsh-autosuggestions zsh-syntax-highlighting
) ```
까먹을까봐 씀..
windows linux subsystem Ubuntu에서 내부 파일 접근하려면
cd /mnt
위와 같이 하면 로컬 디스크 \c나 \d에 접근이 가능해진다.
그렇게 내부로 들어가서 project만들고 Ubuntu처럼 쓰면 된다!
# Get Ubuntu up to date and install Ruby
sudo apt-get update -y && sudo apt-get upgrade -y
sudo apt-get install -y build-essential ruby-full
# update ruby gems and install Jekyll
sudo gem update –system
sudo gem install jekyll bundler
참고 : https://davidburela.wordpress.com/2017/05/17/how-to-install-jekyll-on-windows-10-with-windows-subsystem-for-linux/
아래 글들은 https://d2.naver.com/helloworld/1230로 공부하며 정리하였습니다.
자바 바이트코드는 JRE 위에서 동작한다. 이 JRE에는 자바 바이트코드를 해석하고 실행하는 JVM(Java Virtual Machine)이 있다. JRE는 자바 API와 JVM으로 구성되며, JVM의 역할은 자바 어플리케이션을 Class Loader를 통해 읽어들여 자바 API와 함께 실행하는 것이다.
프로그램을 실행하기 위해 컴퓨터와 유사한 기계를 소프트웨어로 구현한 것이라 할 수 있다. 원래 자바는 WORA(Write Once Run Anywhere)를 구현하기 위해 물리적인 머신과 별개의 가상 머신을 기반으로 동작하도록 설계되었다. 그래서 자바 바이트코드를 실행하고자 하는 모든 하드웨어에 JVM을 동작시킴으로써 자바 실행 코드를 변경하지 않고도 모든 종류의 하드웨어에서 동작되게 한 것이다.
스택 기반의 가상 머신 : 대표적인 컴퓨터 아키텍처인 인텔x86 아케텍처나 ARM 아키텍처와 같은 하드웨어가 레지스터 기반으로 동작하는 데 비해 JVM은 스택 기반으로 동작 한다.심볼릭 레퍼런스 : 기본 자료형(primitive data type)을 제외한 모든 타입(클래스와 인터페이스)을 명시적인 메모리 주소 기반의 레퍼런스가 아니라 심볼릭 레퍼런스를 통해 참조한다.가비지 컬렉션 : 클래스 인스턴스는 사용자 코드에 의해 명시적으로 생성되고 가비지 컬렉션에 의해 자동으로 파괴된다.플랫폼 독립성 보장 : C/C++ 등의 전통적인 언어는 플랫폼에 따라 int형의 크기가 변한다. JVM은 기본 자료형을 명확하게 정의하여 호환성을 유지하고 플랫폼 독립성을 보장한다.git 초보 이용자들은 아마도 git push 명령어를 입력할 때마다, 매번 계정과 비밀번호를 입력해야하는 불편함을 겪고 있을 것이다.
이를 위한 해결방법을 정리해놓는다. (까먹을까봐..)
~/.ssh 파일 안에 들어간다.ssh-keygen -C <github계정> 명령어 입력~/.ssh 파일 목록을 보면 id_rsa,id_rsa.pub가 생겨있는 것을 확인할 수 있다.id_rsa.pub의 내용을 복사(끝에 계정이 입력되어 있는 파일)SSH and GPG keys 메뉴로 들어간다.New SSH key를 눌러 새로운 키 이름을 입력하고, 아래에 복사한 id_rsa.pub 내용을 붙여넣기 한다.git push -u origin master하면 계정비번 입력없이 푸시 끝!