반응형

개발 281

[개발관련] 아카이브(Archive) 란? - jar, war

아카이브라는 단어의 의미가 명확하게 와닿지 않아서 알아보았다. JAR(Java Archive), WAR(Web Application Archive) 프로젝트의 소스파일 -> 빌드 -> jar, war파일 생성 jar 및 war파일은 사실은 zip 같은 압축 파일이다. 프로젝트에 필요한 소스파일 및 리소스 등을 하나로 압축하여 배포에 용이한 jar, war 파일을 만드는 것을 '빌드'라고 한다. 자바아카이브, 웹애플리케이션아카이브에서 아카이브라는 단어는 사전적으로 '보관소'라는 의미이다. 아카이브 (archive)는 역사적 가치 혹은 장기 보존의 가치를 지닌 기록이나 문서들의 컬렉션을 의미하며, 동시에 이러한 기록이나 문서들을 보관하는 장소, 시설, 기관 등을 의미한다. - 출처: 위키백과 위키백과에서는 ..

개발/개발관련 2023.06.18

[linux] 용어 정리 - 셸, CLI, GUI, 프롬프트, 셸 스크립트, 입/출력 리다이렉션, 파이프

리눅스에서 명령어를 파일로 저장하는 >, >> 를 칭하는 명칭을 알아보는 김에 관련 용어를 정리해 보았다. ▶쉘(셸, Shell): 운영체제 상에서, 사용자가 운영체제의 다양한 기능과 서비스를 이용할 수 있도록 인터페이스를 제공하는 프로그램. CLI나 GUI 인터페이스가 있다. ▶CLI(Command Line Interface): 명령 프롬프트에 명령어를 입력하는 방식. ▶GUI(Graphic User Interface): 마우스를 사용하는 것처럼 아이콘, 그래픽 등으로 사용자가 편리하도록 만들어진 인터페이스. ▶명령 프롬프트(Prompt): CLI에서 사용자의 명령어 입력을 기다리는 커서의 대기 모드 ▶스크립트 언어(Scripting language): 응용 소프트웨어를 제어하는 컴퓨터 프로그래밍 언어..

개발/linux 2023.06.16

[SQL] Merge, 조건에 따라 UPDATE 또는 INSERT를 실행

조건에 따라 UPDATE 또는 INSERT를 실행하는 MERGE라는 표준 구문이 있다는 것을 알게 되었다. MERGE INTO 주로 테이블 USING 서브 테이블 ON (조건) WHEN MATCHED THEN UPDATE SET 컬럼1 = 값1 [, 컬럼2 = 값2 ...] WHEN NOT MATCHED THEN INSERT (컬럼1 [, 컬럼2 ...]) VALUES (값1 [, 값2 ...]) Merge (SQL) - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. --> ko.wikipedia.org MERGE INTO CHAT_HISTORY_TABLE USING( SELECT START_DT, END_DT, FROM CHAT_LOG_TABLE WHERE CHAT_LOG_TABLE..

개발/SQL 2023.06.15

[Java] 자바로 메모장 실행하기 with ProcessBuilder

크론탭으로 쉘스크립트를 실행해서 만들어진 log파일을 읽는 방법을 생각하다가 일정 주기마다 생성하는 방법의 단점을 알게 되어서 API를 통해 운영체제에 트리거를 줄 수 있는 방법이 있는지 찾아보았다. java.lang.ProcessBuilder 클래스가 그런 기능을 제공하고 있다. 자바는 참 대단한 것 같다. public class Main { public static void main(String[] args){ String command = "notepad"; ProcessBuilder process = new ProcessBuilder(command); try { process.start(); } catch (IOException e) { e.printStackTrace(); } } } 어떤 식으로..

개발/JAVA 2023.06.13

[개발] 업무 효율성 증대를 위한 서버 점검 보고 자동화

우리 회사의 솔루션은 개발팀의 규모가 컸던 시절 프레임워크화 하였고 이를 기반으로 고객사별로 커스터마이징하여 App 서비스를 제공하였다. 하나의 메인 소스를 가지고 커스터마이징하여 현재는 자사 App을 사용하는 8개 고객사 프로젝트를 운영중인 것이다. 솔루션을 개발했던 기존 개발팀은 모두 다른 회사로 이직을 하였고 지금은 본인 포함 3명의 개발파트 직원이 SM업무를 수행하고 있다. 회사는 고객사 상담 창구 운영을 위한 인프라, [App], [인력]을 제공하는데 본인은 App운영 및 유지보수 업무를 수행하고 있다. 고객사는 9to6 또는 24/365로 App을 이용하기 때문에 고가용성(HA, High Availability)이 굉장히 중요하다. 그렇기 때문에 매일 서버의 상태를 점검하는 것도 마찬가지로 굉..

개발/개발관련 2023.06.13

[Java] 시간과 관련된 자바 클래스

Java8 이전--------------- ▶Date 클래스 -현시점 운영체제의 시간(로컬)을 밀리세컨드 단위로 얻을 때 사용한다. -객체 간 날짜 정보를 주고받을 때 주로 사용한다. -toString()을 이용하면 영문으로 된 날짜 정보 문자열을 리턴 받을 수 있다. -특정 포맷으로 날짜 정보를 얻고 싶을 때 SimpleDateFormat 클래스를 이용한다. -많은 생성자와 메소드들이 Deprecated 되었다. 단순 특정 시점의 시간을 저장하는 용도로만 사용하게 되었다. -Format클래스의 공통적인 사용법 1) 생성자에 문자열 파라미터(원하는 포맷)로 제공하면서 포맷객체 생성 2) format()메소드로 포맷이 적용된 문자열을 반환받음 *MessageFormat은 "x는" + x + "입니다."; ..

개발/JAVA 2023.06.12

[프로그래머스] 0LV_모스부호(1) 재밌는 문제

java기본기와 코딩감을 익히고자 (사실은 재미있어서) 프로그래머스 0 레벨 문제부터 풀어보고 있다. Stream이나 람다도 사용해 보고, 자바 도큐먼트를 참고하며 몰랐던 표준라이브러리 기능을 사용해보고 있다. 조금 더 효율적으로 푸는 방법을 생각해 보는 과정이 정말 재밌다. 그리고 문제를 풀고 나면 다른 사람들의 풀이 코드를 볼 수 있는데 이게 또 정말 배울 것이 많고 재미있는 부분이다. 이 문제는 JSON형태의 morse를 주고 모스부호 문자열을 해당하는 소문자 알파벳으로 치환하는 문제. 국비지원 컴퓨터학원 시절, 자바에서 JSON타입을 다루기 위해 JSONObject, jackson 등의 라이브러리를 사용했던 적이 있었다. 표준 라이브러리만 지원하는 프로그래머스 환경에서 외부 라이브러리를 사용할 수..

개발/코딩 2023.06.10

[개발관련] 윈도우 유용한 기능, '로그인 후 앱 다시 시작' 기능

윈도우즈 10에는 '로그인 후 앱 다시 시작'이라는 기능이 있다. 제어판 검색창에 '앱 다시' 등의 키워드로 검색하거나 제어판 - 계정 - 로그인 옵션에서 손쉽게 이 기능을 켜거나 끌 수 있다. 이 기능을 켜두면 자동으로 다시 시작할 수 있는 대표적인 앱은 다음과 같다. 1. 메모장 2. 엑셀 및 파워포인트 3. 브라우저 이 기능을 켜두어도 이클립스나 인텔리제이 같은 IDE는 자동 실행이 되지는 않는다. 하지만 메모장, 엑셀 및 파워포인트, 브라우저 같은 앱만 자동으로 실행이 되어도 이전 작업 내용이나 검색 내용을 보고 리마인드 하여 업무 및 작업의 연속성을 유지하기 좋다. 리마인드 차원 외에도 어차피 작업할 때 실행시키는 다음과 같은 앱들이 컴퓨터 로그인 시 자동으로 실행되니 참 편리하다. 1. 작업 ..

개발/개발관련 2023.06.10

[Java] 텍스트 파일 읽기, Reader, FileReader, File, BufferedReader

- 자바에서 파일 자체의 데이터를 읽고 쓰는 것 (파일 입출력)은 스트림을 이용하여야 한다. -java.io.File 클래스는 파일에 대한 정보, 파일 생성, 삭제, 디렉토리 생성 및 디렉토리 내부 리스트 등의 기능을 제공하며 파일 입출력 기능은 제공하지 않는다. -문자 기반 입력스트림인 Reader 의 구상 클래스 중 파일을 읽는데 사용하는 FileReader를 사용한다. FileReader 인스턴스생성 시 File객체를 매개변수로 넣어준다. 직접 파일 경로를 매개변수로 넣지 않는 이유는 FIle 존재 여부 등을 확인하여 조금 더 안전하게 사용하기 위해서이다. Reader 타입 객체는 성능향상을 위하여 BufferedReader 객체 생성 시 매개변수로 제공하고 실제로는 보조스트림인 BufferedRe..

개발/JAVA 2023.06.09

[Java] int[] -> Integer[] -> ArrayList<Integer> -> int[]

▶int[]을 Integer[]로 변환하기 int[] arr = new int[5]; Integer[] integerArr = Arrays.stream(arr).boxed().toArray(Integer[]::new); ▶Integer[]을 ArrayList로 변환하기 ArrayList list = new ArrayList(Arrays.asList(integerArr)); ▶ArrayList 를 int[]로 변환하기 int[] arr2 = list.stream().mapToInt(Integer::valueOf).toArray(); ※람다식 (Lambda) 자바는 람다식을 이용하여 함수 스타일을 지원한다. 람다식은 함수적 인터페이스(Functional Interface)의 익명구현객체로 생성되어 작동한다...

개발/JAVA 2023.06.08
반응형