프로그래밍 노트

JAVA 네트워크 프로그래밍 네트워킹의 개념은 컴퓨터들을 서로 연결하여 데이터를 손쉽게 주고받거나 또는 자원을 함께 공유하고자 하는 노력에서 시작되었다. 자바에서 제공하는 java.net패키지를 사용하면 이러한 네트워크 어플리케이션의 데이터 통신 부분을 쉽게 작성할 수 있다. InetAddress Ip주소를 다루기 위한 클래스 URL(Uniform Resource Location) URL은 인터넷에 존재하는 여러 서버들이 제공하는 자원에 접근할 수 있는 주소를 표현하기 위한 것 ‘프로토콜://호스트명:포트번호/경로명/파일명?쿼리스트링' URLConnection 어플리케이션과 URL간의 통신연결을 나타내는 클래스의 최상위 클래스로 추상클래스 HttpUrlConnection과 JarURLConnection이..
try-with-resource문은 무엇인가? 자바7은 try/catch/finally문과 함께 유용하게 사용할 수 있는 문법을 제공한다. AutoCloseable 인터페이스를 구현한 FilReader 클래스를 이용하면 아래와 같이 자원 종료를 걱정할 필요가 없다. => 자원 해제 자동처리 기능 public void resourceHandling(){ try(final FileReader reader = new FileReader("/test/test.txt")){ final char[] buffer = new char[128]; reader.read(buffer); }catch(IOException e){ } }​ try-with-resources문이 도입되기 전에는 reader 인스턴스를 명시적으로 ..
local에서 commit 후 remote repository로 push를 하는 과정에서 에러가 났다.에러로그메시지는 아래와 같다.Updates were rejected because the remote contains work that you do not have locally.(무척당황했었음..) 구글링 결과 에러의 이유는 아래와 같았다.=> gitHub 레파지토리에서 README.md를 생성한적이 있는데, 이 파일때문에 에러가 난 것이다.When you created your repository on GitHub, you created a README.md, which is a new commit.your local repository doesn't know about this commit yet...
Git으로 형상 관리하기 기본용어 이해커밋하는 단위에는 다음과 같은 내용이 포함되어 있다.스냅샷(snapshot)git에서 커밋할 때마다 발생하며 커밋한 시점의 형상관리 상태를 의미. 버전이라는 의미도 내포하고 있다.트리(Tree)파일과 디렉터리의 구조 정보를 저장하고 있다. 일반적으로 파일 시스템이 트리구조를 가지고 있기 때문에 형상 관리 역시 트리 형태로 스냅샷을 저장한다.저작자(Author)git에서 관리하고 있는 파일 혹은 디렉터리를 최초로 생성한 사람의 정보이다.커미터(Committer)최초 파일이 저장소에 반영되면 저작자와 커미터가 동일하지만 이후 해당 파일을 다른 사람이 수정하게 되면 커미터가 변경된다. 저작자는 파일을 생성한 사람. 커미터는 파일을 수정한 사람커밋 메시지(Commit Mes..
컬렉션 프레임워크자바에서는 많은 수의 다양한 패키지(Java API)를 제공하여 개발자들이 자바 어플리케이션을 쉽게 개발할 수 있도록 도와준다.그 중 컬렉션 프레임워크에 대해 알아보겠다.컬렉션 프레임워크는 다수의 데이터를 쉽게 처리할 수 있는 표준화된 방법을 제공하는 클래스이다. 컬렉션 프레임워크의 핵심 인터페이스- List, Set, Map각 컬렉션을 다루는데 필요한 기능을 가진 3개의 인터페이스르 정의하고, 인터페이스 List와 Set의 공통된 부분을 다시 뽑아서 새로운 인터페이스인 Collection을 추가로 정의하였다. List순서가 있는 데이터의 집합, 데이터의 중복을 허용한다.ArrayList, LinkedList, Stack, Vector 등Set순서를 유지하지 않는 데이터의 집합. 데이터의..
형상관리를 해야하는 이유실수, 고의로 파일을 삭제시, 복구할 방법이 없음하나의 파일을 여러 사람이 동시에 작업 불가이전 데이터로 복구 불가 형상관리의 장점소스코드 변경 이력 관리프로젝트 팀원 및 관계자들이 서로 공유 가능장애 혹은 기능상 필요할 때 이전 버전으로 복구 가능동일한 소스 코드를 공유해서 개발 가능, 버전 충돌 문제 관리 가능 요즘 형상 관리 도구에서는 동시 작업을 위한 처리 방식으로 Copy-Modify-Merge 방식을 사용한다.=> 다른 개발자가 소스 코드에 접근 하지 못하도록 Lock을 거는 방식이 아니고, 수정을 원하는 개발자가 소스 코드를 다운로드해서 수정한 다음 형상 관리에 커밋을 하되 버전에 충돌이 생길 경우 머지 명령을 통합해서 이를 해결하는 방식이다.다른 개발자의 수정 작업이..
메이븐(maven) 의존성 관리pom.xml에 lib관련 내용을 추가하면 maven repositoy에서 라이브러리를 다운받아서 로컬의 메이븐 저장소에 저장(기본 위치는 사용자 홈 디렉터리 하위의 .m2 디렉터리에 저장되며 설정에 따라서 위치 변경 가능)ex) maven Repositoy(http://search.maven.org/) 의존성 관리를 하면서 빼놓을 수 없는 것이 관련 라이브러리를 메이븐에서 어느 범위까지 적용해서 사용할 것인지 정의하는 부분이다.메이븐에서 사용가능한 5가지 범위 존재Compile- 기본값, 컴파일 범위는 모든 단계. - 즉, 컴파일, 테스트, 실행, 배포 전체에 클래스 패스로 사용되며 현재 프로젝트와 연관된 다른 프로젝트에도 영향을 준다.Provided- Compile 범위..
AOP(Asepect Oriented Programming) 기능기존의 비즈니스로직 외 작성해야 하는 코드를 별도로 분리함으로써 개발자가 좀 더 비즈니스 로직에만 집중해서 처리할 수 있는 방법을 제공=> 비즈니스로직이 아닌 공통적이고 반족적인 코드를 처리하기 위한 방법 AOP와 트랜잭션 처리를 통해서 다음과 같은 기능을 완성 할 수 있음개발자가 원하는 코드를 실행하는데 얼마나 시간이 소모되는지 쉽게 알 수 있다.개발자는 메소드에 전달되는 파라미터나 리턴 값에 대해서 로그를 기록할 수 있다.데이터베이스 상에서 트랜잭션 처리를 설정하여, 성공하는 경우에만 모든 데이터가 완전하게 처리되는 방법 적용할 수 있다. AOP에서 'Aspect'란=> '비즈니스 로직은 아니지만, 반드시 해야하는 작업', '반드시 해야..
Controller에 요청이 들어오기전에 무엇인가를 수행한다는 기능만 보면 interceptor와 filter는 무척 비슷해 보인다. (전, 후처리기 역할을 수행한다.)위의 사진을 보면 차이점을 쉽게 알 수 있는데, 둘다 컨트롤러 전에 작업을 처리하는 용도로 사용되지만 호출되는 시점이 다르다.필터(Filter)는 dispatcherServlet으로 요청이 가기전에 실행되고인터셉터(Interceptor)는 Controller로 요청이 가기전에 실행이된다. FilterDispatcherServlet 앞단에서 정보 처리J2EE 표준스펙에 정의되어 있는 기능InterceptorDispatcherServlet에서 Handler(Controller)로 가기전에 정보 처리SpringFramework에서 자체적으로 제..
일반프로그램 : OS에서 실행 (Program OS Hardware)Java 프로그램 : JVM에서 실행(JVM은 OS에 종속적) (Java Program JVM OS Hardware) JVM이란?Java Virtual MachineJava와 OS 사이에서 중계자 역할Java Program이 OS에 구애받지 않고 실행될 수 있게 해줌메모리 관리 기능(Garbage Collection) JVM 메모리 구조Java Source : 사용자가 작성한 Java 코드(.java) Java Compiler : Java 코드를 Byte Code(.calss)로 변환시켜주는 기능을 함Class Loader : Class 파일을 메모리(Runtime Data Area)에 적재시켜주는 기능을 함Byte Code(.class..
깡냉쓰
'프로그래밍 노트' 카테고리의 글 목록 (41 Page)