All

Programing Language/Java

Thread (수정중)

오늘은 자바를 이용한 Thread 프로그래밍에 대해서 알아보고자 한다.   프로세스 vs 쓰레드프로세스 : 운영체제로 부터 자원을 할당받는 작업의 단위쓰레드 : 프로세스가 할당받은 자원을 이용하는 실행의 단위 쉽게 이야기하면 프로세스는 실행중인 프로그램을 의미하며, 이런 프로그램은 OS위에서 실행된다. OS는 프로그램 실행을 위한 프로세스를 할당해줄때, 프로세스 안에 프로그램 Code와 Data 그리고 메모리영역(Stack, Heap)을 함께 할당해준다. Code : Java main 메소드와 같은 코드 Data : 프로그램이 실행 중 저장 할 수 있는 저장 공간(전역변수, 정적변수, 배열 ..)Memory(메모리 영역) : Stack: 지역변수, 매개변수 리턴 변수를 저장하는 공간Heap: 프로그램이 ..

Programing Language/Java

String 객체

오늘은 자바의 String 클래스에 대해서 정리하고 관련 알고리즘 문제를 해결 할 때 쓰는 패턴들을 정리해보고자 한다.    java String 아래는 java String 객체에서 사용할 수 있는 메소드와 기능을 정리한 표이다. 여기서 몇가지 헷갈리는 점을 몇개 체크해 보자면 아래와 같다. python에서 문자열을 접근할때 string[0] 처럼 인덱스 접근이 안되고, charAt()을 통해 접근한다. java collection에서 객체 배열의 길이는 size() String에서 길이는 length()로 구한다.문자열 함수설명참고equal해당 함수는 문자열 간의 “대소문자를 구분”하여서 비교하여 진위형(true/false)값으로 반환을 해주는 함수입니다.단, String과 StringBuffer간의..

Programing Language/Java

Collections Framework

오늘은 JCF(Java Collection Framework)에 대해서 정리해보고자 한다. 간단하게 말하자면 흔히 쓰는 자료구조 (스택, 큐, 링크드 리스트, 맵.... )등을 자바 클래스로 구현한 모음집이다.    컬렉션 프레임워크 종류  컬렉션 프레임워크는 크게 Collection 인터페이스와 Map 인터페이스로 나뉜다. List, Set 인터페이스와 달리 Map은 두개의 데이터를 묶어 한쌍으로 다루기 때문에 Collections 인터페이스와 따로 분리되어 있다.     Collection 인터페이스 - List, Set, Queue에 상속하는 최상위 컬렉션 타입- 다양한 종류의 컬렉션을 받아 자료를 삽입하거나 삭제, 탐색 기능을 할 수 있다. 메서드기능boolean add(Object o)boole..

Cloud/Git

Learn Git Branching을 통해서 브랜치 관리 배우기 (메인 브랜치편)

오늘은 Learn Git Branching을 통해서 깃허브 명령어를 정리해보고자 한다.     Learn Git BranchingLearn Git Braching이란 Git branch을 사용하는 방법을 가이드와 그림으로 나타내어 학습할 수 있는 사이트이다.  Learn Git BranchingAn interactive Git visualization tool to educate and challenge!learngitbranching.js.org 해당 사이트에 들어가보면, git명령어에 대한 소개를 소스트리와 실습을 통해 알려주는데, 오늘은  이를 통해 해당 기능들을 모두 학습해보려 한다.     Commitgit 저장소에 스냅샷에 대한 기록을 남기는 것..

FrameWork/Unity

Unity Cinemachine

이번에는 유니티의 카메라 라이브러리 시네머신을 다루는 방법에 대해서 정리해보고자 한다. 준비 일단 시네머신을 사용하기전에, Unity에서 기본으로 제공하는 starter pack 사용해서 진행하였다. 해당 에셋을 설치하게 되면, 시네머신도 의존성에 의해 같이 설치되어 있으므로 시네머신 카메라를 함께 사용할 수 있다. Freelook 일반적인 자유 카메라를 의미하며, Follow, LookAt에 따라서, 카메라가 따라다닐 오브젝트와, 바라보는 오브젝트를 설정할 수 있다. BlendList 블랜드리스트 카메라는 자연스러운 카메라 회전이 필요할 때 사용된다. 블랜드리스트 카메라를 생성하게 되면 여러 가상카메라들이 생기는데 오른쪽에 있는 BlendIn 옵션에 따라서, 카메라 전환을 자유롭게 하게 만들 수 있다...

Programing Language/Python

Poetry을 통한 의존성 관리하기

이번에는 파이썬에서 사용하는 의존성 관리 중에 하나인 Poetry에 대해서 알아보고자 한다. Poetry을 왜 사용하나? Poetry는 다음과 같은 이점들을 제공한다. 의존성 해결 : 예를 들어 패키지 1, 패키지 2가 있을 때, 패키지 2가 패키지 1의 2.0 이상의 버전을 요구할 경우 pip에서는 패키지 1을 1.0 버전으로 설치해도 아무런 문제가 없지만 poetry에서는 특정 버전 이상이 아닐 경우 설치가 되지 않는다. 의존성 잠금 : pip는 lock파일이 없고, 직접 requirements.txt을 작성해야하지만, poetry는 lock 파일과 pyproject.toml(requirements.txt처럼 설치한 패키지를 리스팅 해놓은 파일)을 자동으로 생성하고 업데이트한다. 가상환경 : pip는..

FrameWork/Django

django-seed을 통해 더미데이터 만들기

이번에는 django-seed 라이브러리를 통해 더미 데이터를 만들어 비어있는 DB 채워주는 것을 알아보고자 한다. django-seed django-seed는 Faker라이브러리를 사용하여 django 모델에 대한 테스트 데이터를 생성해 주는 라이브러리이다. 설치 터미널을 통해 설치한다. 참고로 psycopg2를 설치하니 오류가 발생하여, 바이너리 버전인 psycopg2-binary을 설치하여 진행하였다. pip install django-seed pip install psycopg2-binary 그다음 settings.py에 들어가 앱을 등록한다. INSTALLED_APPS = ( ... 'django_seed', ) 아래 명령어를 통해 다음 생성하고자 하는 앱과 --number 옵션을 작성하여 더미..

Computer Theory/Web

API에 대하여

이번에는 API에 대한 기본개념과 그에 대한 REST, Json APIs 등의 기타 개념에 대해서 알아보고자 한다. API API는 Application Programming interface의 줄임말로 정의 및 프로토콜 집합을 사용하여 두 소프트웨어 구성 요소가 서로 통신 할수 있도록 하는 메커니즘을 의미한다. API가 생성된 시기와 이유에 따라 4가지 방식으로 작동할 수 있다. SOAP API 이 API는 단순 객체 접근 프로토콜을 사용한다. 클라이언트와 서버는 XML을 사용하여 메시지를 교환하며, 과거에 더 많이 사용되었지만 유연성이 떨어지는 API 이다. RPC API 원격 프로시저 호출이라고 한다. 클라이언트가 서버에서 함수나 프로시저를 완료하면 서버가 출력을 클라이언트로 다시 전송 한다. We..

Programing Language/Python

unittest을 통해 테스트 코드 작성하기

이번에는 unittest을 통해서 python 테스트 코드 작성 방법과 테스트 코드를 작성하는 이유에 대해서 조금 포괄적으로 다뤄보고자 한다. 테스트코드 테스트 코드를 작성하면 좋은 이점들을 아래와 같이 정리했다. 디버깅 비용(시간) 절감 : 코드를 작성하다 보면, 오류나 결함을 수정하는 데에 있어서 많은 소요비용을 지불한다. 테스트 코드는 개발자가 작성한 코드를 실행하여 예상된 결과가 나오는지 확인하는 데 사용된다. 코드 변경에 대한 불안감 해소 : 가끔 코드를 수정하다 보면 잘 되던 것들도 안 되는 경우가 생기는데 이러한 문제를 해결하게 도와준다. 더 나은 문서자료 : 개발자는 항상 좋은 코드를 작성하기 위해서 노력할 필요가 있다. 테스트 코드는 이런 부분에 있어서 일반적인 문서 자료보다 신빙성 있는..

JHeaon
'분류 전체보기' 카테고리의 글 목록 (4 Page)