Java 관련: 133개의 글

오늘 다루어볼 포스팅 내용은 Netty의 개념과 아키텍쳐에 대한 대략적인 설명이다. Netty에 대해 알아보기 전에 AS-IS 자바의 네트워킹 동작 방식에 대해 먼저 다루어본다. 자바의 네트워킹 순수 자바로 네트워크 통신을 하기위해서 생긴 최초의 라이브러리는 java.net 패키지이다. 해당 소켓 라이브러리가 제공하는 방식은 블로킹 함수만 지원했다. 해당 라이브러리를 이용한 서버코드를 간단히 보면 아래와 같다. public void blockCall() throws IOException { ServerSocket serverSocket = new ServerSocket(8080); Socket clientSocket = serverSocket.accept(); BufferedReader in = new ..

그래들 프로젝트를 사용중인데, 간혹 idea에서 "Could not initialize class org.codehaus.groovy.runtime.InvokerHelper"라는 에러 메시지가 뜨는 경우가 있다. 여러가지 요인이 있을 수 있지만, 필자가 저 에러를 보았던 순간은 jdk 1.8에서 jdk14 버전으로 올리면서 났던 에러 메시지 인데, 이유는 gradle version이 jdk14를 지원하지 못하는 낮은 버전이었기 때문이다. 그래서, 프로젝트 디렉토리중 "gradle/wrapper/gradle-wrapper.properties"에서 gradle 버전을 올려주어서 해결하였다.(5.x -> 6,3) 출처: https://coding-start.tistory.com/378?category=8209..

> $HOME/.gradle/caches/modules-2/files-2.1/ > rm -rf > ./gradlew --refresh-dependencies 출처: https://coding-start.tistory.com/363?category=820992 [코딩스타트]

이번 포스팅은 간단하게 Gradle Task를 작성하는 방법이다. 모든 경우의 Task 작성 방법을 다루지는 않지만 몇가지 예제를 다루어볼 것이다. task hello{ doLast{ println 'Hello' } } 위는 간단하게 'Hello'라는 문자열을 출력하는 태스크이다. 아래 명령으로 실행시킨다. gradle -q hello result-> Hello -q 옵션 같은 경우는 로그 출력없이 결과값만 출력하는 옵션이다. 만약 -q 옵션을 뺀다면 빌드에 걸린 시간등의 로그가 찍히게 된다. 디폴트 태스크 정의 gradle -q 라는 명령어로 실행하는 디폴트 태스크를 정의하는 방법이다. 보통 빌드전에 clean, install 등의 작업을 기계적으로 하는 경우가 많은데, 디폴트 태스크로 정의하여 사용하..

이번 포스팅은 그래들을 이용한 자바 프로젝트 구성에 대해 다루어볼 것이다. 그래들로 자바 프로젝트를 초기화 하는 방법은 이전 포스팅에 있으니 참고 바란다. Gradle - Gradle의 기본 자바 타입으로 그래들 프로젝트를 생성하면 아래와 같은 기본 디렉토리 구조를 가진다. src -main -java -test -java 그래들의 자바 플러그인의 Task 의존 관계는 아래 그림과 같다. build를 실행하게 되면 compileJava와 test Task가 실행된다. 그런데 이전 단계 Task가 실패하면 다음 단계는 진행되지 않는다. -컴파일시 인코딩 오류가 날 경우 >gradle compileJava 위와 같은 명령으로 컴파일 할때 인코딩 문제가 있다면 아래와 같이 옵션 값을 넣어준다.(build.gr..

이번 포스팅은 Gradle에 대한 기본을 다루어볼 것이다. 사실 Gradle이 뭔지 모르는 개발자는 거의 없을 것임으로, 자세한 설명은 하지 않을 것이다. Gradle은 빌드툴이다! (마치 Maven과 같은) Gradle 내부 프로젝트 인터페이스 Project >final DEFAULT_BUILD_FILE >DEFAULT_BUILD_DIR_NAME >GRADLE_PROPERTIES >SYSTEM_PROP_PREFIX >Task task(String name, Closure configureClosure) 프로젝트 인터페이스는 그래들로 프로젝트를 설정하고 구성할 때 사용하는 파일로, 그래들 프로젝트를 논리적으로 표현하는 인터페이스이다. default_build_file 파일은 프로젝트 설정에 대한 정보를 ..

오늘 다루어볼 포스팅 내용은 Maven Multi Module을 이용한 Spring Boot Project 만들기입니다. 우선 Maven Multi Module 프로젝트란 하나의 부모 Maven Project를 생성하고 그 밑으로 자식 Maven Module들을 가지는 구조입니다. 부모의 pom.xml에 공통적인 의존 라이브러리를 넣어주면 다른 자식 Maven Module에서는 그대로 사용이 가능합니다. 또한 JPA관련된 모든 소스코드를 common이라는 Maven Module로 만들어서 다른 Maven Module에서 사용하여 공통적인 중복코드를 줄일 수도 있습니다. 바로 예제로 들어가겠습니다. Maven Multi Project 모든 예제는 Eclipse + Mac OS 기반으로 작성되었습니다. 오늘..

1. 메이븐이란? 주로 java 진영에서 프로젝트 빌드, 관리에 사용되는 도구이다. 개발자들이 전체 개발과정을 한 눈에 알아볼 수 있다. 아파치 프로젝트이다. maven의 특징 빌드 절차 간소화 동일한 빌드 시스템 제공 프로젝트 정보 제공 구조 ant와의 차이점 Ant가 비교적 자유도가 높다. 전처리, 컴파일, 패키징, 테스팅, 배포 가능 Maven은 정해진 라이프사이클에 의하여 작업 수행하며, 전반적인 프로젝트 관리 기능까지 포함하고 있음. (Build Tool + Project Management) gradle과의 차이점 XML 대신 groovy 스크립트를 사용하여 동적인 빌드 가능. maven은 멀티프로젝트에서 상속구조인데, gradle은 주입 방식이다. 멀티프로젝트에서 gradle이 더 적합하다...

maven multi module project 만드는 방법과 해당 프로젝트를 SVN에 올리고 다른 개발환경에서 checkout하는 방법 모든 환경은 Mac OS 환경입니다. 오늘 설명 할것은 maven multi module project를 만드는 방법과 해당 프로젝트를 svn에 업로드하고 다른 개발환경에서 checkout하는 방법입니다. 1) 우선은 부모 maven 프로젝트를 만들어줍니다. 지금까지 잘 따라오셨다면 부모 maven 프로젝트가 만들어져 있을 것입니다. 주의해야할 점은 반드시 packaging을 pom으로 지정해주셔야하는 것입니다. 2)자식 메이븐 모듈 만들기 이렇게 하면 자식 메이븐 모듈 프로젝트까지 생성이 됩니다. 3)프로젝트 구조 제가 만든 별도의 프로젝트는 신경쓰시지 마시고 , 생..

위의 코드를 실행시 아래와 같은 오류가 발생했다. 해당 오류가 발생했다면 우선 커넥션 풀의 connection 부분을 살펴봐야 한다. 보면 jdbc/basicjsp에 연결을 시도하려고한다. 그러나 내가 실수한게 상기 데이터는 오라클에 연결해야한다. 그러므로 연결을 잘못했으므로 해당 문제가 발생한 것이다. 위는 연결을 해야 하는 오라클 데이터베이스 및 데이트블이다. 그러므로 server.xml에서 연결하려고하는 커넥션 풀의 이름을 확인 후 수정을 진행하도록하자 아래를 참고하여 수정을 진행하면 될 것 같다. 수정 후 정상 입력되는 것을 확인할 수 있다. 출처 : namubada.net/66?category=771026