Backend
-
Tibero Studio, tbAdmin 실행 오류 Java was started but returned exit code= 1 Java was started but returned exit code= 13Backend/DB 2023. 1. 17. 18:50
티맥스에서 제공하는 Tibero Studio DBMS를 윈도우에서 설치 중 오류가 발견되었다. 티베로 스튜디오는 티베로 DB를 관리할 수 있는 DBMS이다. 티맥스에서는 TbAdmin이라는 관리 툴도 제공한다. 이 두가지 모두 아래 테크넷 사이트에서 다운로드가 가능하며, 회원가입이 필요하다. https://technet.tmaxsoft.com/ko/front/download/findDownloadList.do?cmProductCode=0301 TmaxSoft Technical Network [technet-01] 데모라이선스 신청 데모라이선스는 제품구입 전 테스트 및 검토를 위하여 제한 된 기간 동안 발급받아 사용가능한 라이선스 입니다. technet.tmaxsoft.com 문제는, 윈도우 버전 exe ..
-
Java의 Compile Process 자바의 컴파일 과정Backend/Java 2022. 12. 28. 00:10
1. 개발자가 자바 소스코드(.java)를 작성 2. 자바 컴파일러(Java Compiler)가 자바 소스파일을 컴파일 이때 나오는 파일은 자바 바이트 코드(.class)파일로 아직 컴퓨터가 읽을 수 없는 자바 가상머신(JVM)이 이해할 수 있는 코드이다. 3. 컴파일된 바이트 코드를 JVM의 클래스로더(Class Loader)에게 전달 4. 클래스 로더는 동적로딩(Dynamic Loading)을 통해 필요한 클래스들을 로딩 및 링크하여 런타임 데이터 영역(Runtime Data Area) 즉, JVM 메모리에 바이트 코드들을 올려줌 5. 실행엔진(Execution Engine)은 JVM 메모리에 올라온 바이트 코드들을 명령어 단위로 하나씩 가져와서 실행합니다. 이 때, 실행 엔진은 두 가지 방식이 있..
-
java final 의미, 사용법Backend/Java 2022. 12. 27. 23:53
Java에서 final은 "불변성"을 확보하기 위해 존재한다. 즉, 클래스나 변수 앞에 final을 붙이면 처음 정의된 상태가 변하지 않는 것을 보장한다. 4가지 경우에 대해 final을 사용할 수 있다. 1. final 변수 final String hello = "Hello world"; final 키워드가 붙은 변수는 초기화 후 변경할 수 없다. 다음과 같이 변경하려고 하면 컴파일 에러가 발생한다. final String hello = "Hello world"; hello = "See you around" // compile error! 2. final arguments (인자) final로 선언된 인자는 메소드 내에서 변경이 불가능하다. 따라서 다음과 같이 final int로 선언한 number는 ..
-
RedisBackend/DB 2022. 12. 19. 20:38
지난번, 세션 vs 쿠키 vs 토큰 게시물에서 일반적으로 세션관리를 할 때엔 DB가 필요하고 유저가 늘어날수록 그에 따른 비용이 증가한다. 이럴 때 사용하는 것이 빠르고 저렴한 Redis DB라고 한다. 가볍게 찾아봤을 땐, Redis는 일반적인 DB와 형태가 다른다고만 알고 있었는데 조금 더 구체적으로 알아보고자 한다. Redis를 4개의 키워드로 설명해보고자 한다. 1. Remote Dictionary Server Redis는 우리에게 친숙한 RDB 형태가 아닌 RDS 방식이다. RDS는 Remote Dictionary Server로 외부에 있는 Key-Value쌍으로 데이터를 저장하는 서버라는 것을 알 수 있다. 이러한 Key-Value로 저장되는 형태 덕분에 별도 쿼리 없이도 데이터를 간단히 가져..
-
인터페이스 vs 추상클래스Backend/Java 2022. 11. 23. 14:53
추상클래스가 미완성 설계도라면 인터페이스는 기본 설계도라고 할 수 있다. 추상클래스는 일반 클래스와 별 다를 것이 없고 단지, 추상 메서드를 선언하여 상속을 통해서 자손 클래스에서 완성하도록 유도하는 클래스이다. 그래서 미완성 설계도라고도 표현한다. 추상 클래스는 트리 형식으로 상위 클래스와 하위 클래스로 나뉘어지는 트리 구조이다. 하위 클래스는 상위 클래스에서 추상화시킨 생성자 혹은 메서드를 정의하면서 더 구체화되어간다. 반면에, 인터페이스는 트리 구조와 같은 수직적 구조가 아닌 수평적 구조를 가지게 된다. interface 사용 예시 암호화 복호화 로직을 짠다고 생각해보자. 암호화/복호화 메서드를 가진 인터페이스 public interface Crypto { // 암호화 public String e..
-
객체지향 프로그래밍 정의, 장단점, 객체지향 프로그래밍 키워드Backend/Java 2022. 11. 15. 10:54
1. 객체지향 프로그래밍 정의 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법 2. 객체지향 프로그래밍의 장단점 장점 코드 재사용이 용이 : 남이 만든 클래스를 가져와서 이용할 수 있고 상속을 통해 확장해서 사용할 수 있음 유지보수가 쉬움 : 절차지향 프로그래밍에서는 코드를 수정해야 할 때 일일이 찾아 수정해야하는 반면 객체 지향 프로그래밍에서는 수정해야 할 부분이 클래스 내부에 멤버 변수 혹은 메서드로 있기 때문에 해당 부분만 수정하면 됨. 대형 프로젝트에 적합 : 클래스 단위로 모듈화 시켜서 개발할 수 있으므로 대형 프로젝트처럼 여러 명, 여러 회사에서 개발이 필요할 시 업무 분담 쉬움 단점 처리 속도..
-
객체지향프로그래밍 vs 절차지향프로그래밍Backend/Java 2022. 11. 15. 10:24
절차지향 프로그래밍 물이 위에서 아래로 흐르는 것처럼 순차적인 처리를 중요시하는 프로그래밍 기법이다. 대표적인 언어로 C언어가 있다. 컴퓨터의 처리구조와 유사해 실행속도가 빠르다. 코드의 순서가 바뀌면 동일한 결과를 보장하기 어렵다. 객체지향 프로그래밍 실제 세계의 사물들을 객체로 모델링하여 개발을 진행하는 프로그래밍 기법이다. 대표적인 언어로 Java가 있다. 캡슐화, 상속, 다형성 등과 같은 기법을 이용할 수 있다. 절차지향 언어보다 실행속도가 느리다. 절차지향 -> 객체지향 프로그래밍의 패러다임 변화 컴퓨터 중심 프로그래밍 (컴퓨터가 사고하는대로 프로그래밍) ⬇ 인간 중심적 프로그래밍 (현실 세계를 프로그래밍으로 옮겨와 프로그래밍하는 것)