본문 바로가기
728x90

전체 글240

[Linux] 쉘 스크립트(Shell Script) 1. 환경 Linux 기반 시스템 Bash shell(/bin/bash) 2. 쉘 스크립트 작성 및 권한 부여 2.1. 파일생성 및 권한 부여 파일생성 $ touch shell_script_practice.sh // 파일 생성 $ vim shell_script_practice.sh // 쉘 스크립트 파일 편집기로 열기 실행 권한 부여(파일의 상태 변경) $ chmod +x shell_script_practice.sh // 실행 권한 부여 2.2. 스크립트 상단에 #!/bin/bash 추가 #!/bin/bash ... 하단에 스크립트 작성 ... 2.3. 쉘 스크립트 실행 방법 ./[쉘스크립트 파일명] $ ./shell_script_practice.sh 3. 기본 문법과 예제 3.1. 기본 출력 echo,.. 2022. 5. 3.
[JAVA] GC(Garbage Collection)2 Garbage Collection? .NET의 GC(Garbage Collection)는 애플리케이션의 메모리 할당 및 해제를 관리한다. 새 개체를 만들 때마 공용 언어 런타임이 관리되는 힙에서 개체에 대해 메모리를 할당한다. 관리되는 힙에서 주소 공간을 사용할 수 있다면 런타임은 계속해서 새 개체에 공간을 할당한다. 그러나 메모리는 무한하지 않다. 결국 GC는 메모리를 확보하기 위해 수집을 수행해야 한다. GC의 최적화 엔진은 수행 중인 할당에 따라 수집을 수행하기에 가장 적합한 시간을 결정한다. GC는 수집을 수행할 때 애플리케이션에서 관리되는 힙에 있는 더 이상 사용하고 있지 않은 개체를 확인하고 해당 메모리를 회수하는데 필요한 작업을 수행한다. CLR(공용 언어 런타임)에서 GC는 자동 메모리 관.. 2022. 5. 2.
[C++] 백준 23288번: 주사위 굴리기2 https://www.acmicpc.net/problem/23288 23288번: 주사위 굴리기 2 크기가 N×M인 지도가 존재한다. 지도의 오른쪽은 동쪽, 위쪽은 북쪽이다. 지도의 좌표는 (r, c)로 나타내며, r는 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로부터 떨어진 칸의 개수이다. 가장 왼 www.acmicpc.net N x M 인 지도, 오른쪽이 동쪽, 위쪽이 북쪽 지도의 좌표 표시 (r, c), r은 북쪽으로부터 떨어진 칸의 수, c는 서쪽으로부터 떨어진 칸의 수 가장 왼쪽 위에 있는 칸의 좌표가 (1, 1)이고 가장 아래에 있는 칸의 좌표가 (N, M)이다. 주사위 이동 방식(최초 주사위의 위치는 (1, 1)이고, 윗 면이 1이고, 동쪽을 바라보고 있는 상태) 1. 주사위가 이동 방향으로.. 2022. 4. 29.
[C++] 백준 14891번: 톱니바퀴 https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 첫째 줄에 1번 톱니바퀴의 상태, 둘째 줄에 2번 톱니바퀴의 상태, 셋째 줄에 3번 톱니바퀴의 상태, 넷째 줄에 4번 톱니바퀴의 상태가 주어진다. 상태는 8개의 정수로 이루어져 있고, 12시방향부터 www.acmicpc.net 문제풀이 톱나바퀴의 초기 상태와 톱니바퀴를 회전시킨 방법이 주어졌을 때, 최종 톱니바퀴의 상태를 구하기 톱니바퀴 회전 조건 1. 회전하는 톱니바퀴 기준으로 인접해 있는 톱니바퀴가 다른 극이라면 반대편 톱니바퀴 회전x(항상 기준은 회전하는 톱니바퀴에서 다음으로 오는 극을 기준으로함.) 2. 회전하는 톱니바퀴 기준 인접해 있는 톱니바퀴가 같은 극이라면 회전o 입력 첫 4줄 각 줄 별로 1,2,3.. 2022. 4. 28.
[JAVA] JNDI(Java Naming and Directory Interface) Naming and Directory Concepts Naming Service 시스템 자원이나 객체, 서비스 등에 이름을 부여하고 그 이름을 통해 대상을 찾게 해주는 서비스 Directory Service 자원이나 객체 등의 이름뿐 아니라 이들의 속성을 통해서도 대상을 찾게 해주는 서비스 DNS(Domain Name System), File System, LDAP, ... Naming service names are associates with objects To map user friendly names to objects For examples, DNS : www.examples.com > 192.0.2.5 File system : C:\bin\autoexe.bat > File Reference N.. 2022. 4. 27.
[C++] 백준 16236번: 아기 상어 https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 문제 풀이 NxN 크기 공간에 물고기 M마리와 아기상어 1마리 존재 최초 아기 상어 크기 2, 아기 상어는 1초에 상하좌우 인접한 한칸씩 이동 아기 상어는 자기보다 큰 물고기가 있는 칸은 지나갈 수 없음. 아기 상어는 자신보다 작은 물고기만 먹을 수 있음. 크기가 같은 물고기는 먹을 수 없지만 지나갈 수는 있음. 물고기 사이즈 1~6 아기 상어 이동 규칙 1. 더 이상 먹을 수 있는 물고기.. 2022. 4. 26.
[JAVA] Effective Java 1 1. 객체의 생성과 파괴 생성자 대신 정적 팩토리 메서드를 고려하라. 클래스는 클라이언트에 public 생성자 대신 정적 팩토리 메서드를 제공할 수 있다. 정적 팩토리 메소드가 생성자보다 좋은 장점 이름을 가질 수 있다. 호출될 때마다 인스턴스를 새로 생성하지는 않아도 된다. 반환 타입의 하위 타입 객체를 반환할 수 있는 능력이 있다. 입력 매개변수에 따라 매번 다른 클래스의 객체를 반환할 수 있다. 정적 팩토리 메서드를 작성하는 시점에는 반환할 객체의 클래스가 존재하지 않아도 된다. 단점 상속을 하려면 public이나 protected 생성자가 필요하니 정적 팩토리 메서드만 제공하면 하위 클래스를 만들 수 없다. 정적 팩토리 메서드는 프로그래머가 찾기 어렵다. 정적 팩토리 메서드의 명명 방식 from:.. 2022. 4. 25.
[JAVA] EJB 추가 정리 Java Beans - 대규모 프로젝트에서 쓰임 - 용도 : 업무를 분할해서 전체를 잘만들어보자. JSP : web page 디자인 JavaBean : 내부 logic 구현 예제 public class MyBean { Private String name = "Heo"; public String getName() { return name; } public void setName(String name) { this.name = name; } } 1. Getter, Setter 2. Empty constructor *업무를 분담하기 위해서 컴포넌트 별로 나누어놓음. Enterprise Java Beans Transaction, Security 처리 Security 처리 예제(무식한 코드 삽입, 예전 방법, 디.. 2022. 4. 22.
[JAVA] GC(Garbage Collection) 영역별 데이터 흐름 정리 위 그림의 Permanent Generation 영역(이하 Perm 영역)은 Method Area라고도 한다. 객체나 억류(intern)된 문자열 정보를 저장하는 곳이며, Old 영역에서 살아남은 객체가 영원히 남아 있는 곳은 절대 아니다. 이 영역에서 GC가 발생할 수도 있는데, 여기서 GC가 발생해도 Major GC의 횟수에 포함된다. 그렇다면 "Old 영역에 있는 객체가 Young 영역의 객체를 참조하는 경우가 있을 때에는 어떻게 처리될까?" 라고 궁금해 할 수도 있다. 이러한 경우를 처리하기 위해서 Old 영역에는 512바이트의 덩어리(chunk)로 되어 있는 카드 테이블(cardf table)이 존재한다. 카드 테이블에는 Old 영역에 있는 객체가 Young 영역의 객체를 참할 때마다 정보가 표.. 2022. 4. 21.
728x90