가비지컬렉터 - 동적을 할당된(Heap) 메모리 영역중 사용하지 않는 영역을 탐지하여 해제하는 기능 Heap에는 오브젝트 타입의 객체 데이터들이 저장된다. Stack에는 파라미터 등 임시 변수와 참조 변수를 저장한다. 자바에서는 Heap에 오브젝트(객체) 데이터 할당된다.(String, Intager(int랑 다르다!) 등) (Stack은 정적(Static)으로 할당한 메모리 영역 - 임시데이터(파라미터, 임시데이터), 및 Heap을 참조하는 참조변수 저장 가비지 컬렉터는 "현재 Stack"을 돌면서(현재 사용하고 있는 객체와 연결된 변수들은 Stack에 존재하니까) 참조 연결된 객체들을 마킹(Reachable)하고 그 외의 것(UnReachable)들은 제거한다. 그래서 가비지 컬렉팅은 언제 일어나는데..
#www.acmicpc.net/problem/15685 문제 드래곤 커브는 다음과 같은 세 가지 속성으로 이루어져 있으며, 이차원 좌표 평면 위에서 정의된다. 좌표 평면의 x축은 → 방향, y축은 ↓ 방향이다. 시작 점 시작 방향 세대 0세대 드래곤 커브는 아래 그림과 같은 길이가 1인 선분이다. 아래 그림은 (0, 0)에서 시작하고, 시작 방향은 오른쪽인 0세대 드래곤 커브이다. 1세대 드래곤 커브는 0세대 드래곤 커브를 끝 점을 기준으로 시계 방향으로 90도 회전시킨 다음 0세대 드래곤 커브의 끝 점에 붙인 것이다. 끝 점이란 시작 점에서 선분을 타고 이동했을 때, 가장 먼 거리에 있는 점을 의미한다. 2세대 드래곤 커브도 1세대를 만든 방법을 이용해서 만들 수 있다. (파란색 선분은 새로 추가된 선..
디자인 패턴 = 소프트웨어를 개발하며 공통적으로 발생하는 문제를 해결하기 위한 양식이나 패러다임 그 중에서 대표적인 디자인 패턴인 MVC 디자인 패턴은 애플리케이션을 모델,컨트롤러,뷰 세가지 역할로 구분한 개발 방법론 Model + Veiw + Controller 자바에서는 = JavaBean(Service) + JSP + Servlet JavaBean - 데이터를 표현하기 위한 목적으로 JAVA Bean규약에 따라 작성된 자바 클래스 JSP - HTML에 Servlet기반의 JAVA코드를 삽입하는 형식(기술)(HTML에서 Servlet이 돌아가도록한 서버 스크립트 기술) (Servlet & JSP - 둘다 같은 역할이 가능하다. 하지만 MVC패턴에서 둘의 역할을 나눠서 장점을 활용해 담당하는 부분을 나..
https://www.acmicpc.net/problem/15683 문제 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감시할 수 있는 방법은 다음과 같다. 1번 2번 3번 4번 5번 1번 CCTV는 한 쪽 방향만 감시할 수 있다. 2번과 3번은 두 방향을 감시할 수 있는데, 2번은 감시하는 방향이 서로 반대방향이어야 하고, 3번은 직각 방향이어야 한다. 4번은 세 방향, 5번은 네 방향을 감시할 수 있다. CCTV는 감시할 수 있는 방향에 있는 칸 전체를 감시할 수 있다. 사무실에는 벽이 있는데, CCTV는 벽을 통과할 수 없다. CCTV가 감시할..
C와 C++의 경우는 OS에 Dependency하다.-> OS가 달라지면 배포가 불가능하다. 따라서 크로스컴파일이 필요하다. 크로스 컴파일 - 타켓 플랫폼에 맞춰 컴파일 하는 것을 크로스 컴파일이라고 한다. JVM은 이를 더 근본적으로 해결해준다. 자바는 운영체제에 제한을 받지 않는다. 자바 바이트코드를 JVM 위에서 동작시켜 OS에 제한을 받지않는다. JVM이 OS에 관련된 작업들을 대신 해준다. 힙 & 스택 관리 GC등 .java(= 소스코드) ---> (컴파일러/javac) ---->.class파일:(=자바 바이트 코드를 담은 파일) ----> JVM이 실행 "당신이 짠 자바 코드를 컴파일 해서 배포하면 어떤 플랫폼이든 다시 컴파일 할 필요 없이 실행시킬 수 있다." - SUN
톱니바퀴 성공분류 시간 제한메모리 제한제출정답맞은 사람정답 비율 2 초 512 MB 18024 9280 6731 52.320% 문제 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴가 1번, 그 오른쪽은 2번, 그 오른쪽은 3번, 가장 오른쪽 톱니바퀴는 4번이다. 이때, 톱니바퀴를 총 K번 회전시키려고 한다. 톱니바퀴의 회전은 한 칸을 기준으로 한다. 회전은 시계 방향과 반시계 방향이 있고, 아래 그림과 같이 회전한다. 톱니바퀴를 회전시키려면, 회전시킬 톱니바퀴와 회전시킬 방향을 결정해야 한다. 톱니바퀴가 회전할 때, 서로 맞닿은 극에 따라서 옆에 있는 톱니바..
www.acmicpc.net/problem/14466 14466번: 소가 길을 건너간 이유 6 첫 줄에 N, K, R이 주어진다. 다음 R줄에는 한 줄에 하나씩 길이 주어진다. 길은 상하좌우로 인접한 두 목초지를 잇고, r c r′ c′의 형태 (행, 열, 행, 열)로 주어진다. 각 수는 1 이상 N 이하이다. www.acmicpc.net 문제 소가 길을 건너간 이유는 그냥 길이 많아서이다. 존의 농장에는 길이 너무 많아서, 길을 건너지 않고서는 별로 돌아다닐 수가 없다. 존의 농장에 대대적인 개편이 있었다. 이제 작은 정사각형 목초지가 N×N (2 ≤ N ≤ 100) 격자로 이루어져 있다. 인접한 목초지 사이는 일반적으로 자유롭게 건너갈 수 있지만, 그 중 일부는 길을 건너야 한다. 농장의 바깥에는 높..
REGEX = 문자열에서 pattern을 작성 Groups and ranges Chracter뜻 | 또는 () 그룹 [] 문자셋, 괄호안의 어떤 문자든 [^] 부정 문자셋, 괄호안의 어떤 문가 아닐때 (?:) 찾지만 기억하지는 않음 Quantifiers hracter뜻 ? 없거나 있거나 (zero or one) * 없거나 있거나 많거나 (zero or more) + 하나 또는 많이 (one or more) {n} n번 반복 {min,} 최소 {min,max} 최소, 그리고 최대 Boundary-type Chracter뜻 \b 단어 경계 \B 단어 경계가 아님 ^ 문장의 시작 $ 문장의 끝 Character classes Chracter뜻 \ 특수 문자가 아닌 문자 . 어떤 글자 (줄바꿈 문자 제외) \d..
UX는 사용자다. 사용자에게 정보를 얻고 사용자에서 나온 정보를 바탕으로 제품의 품질을 좋게 해야한다. 유명한 앱,서비스에서도 항상 업데이트가 진행되고 다운그레이드도 진행되듯 좋은 디자인은 한 번에 나올 수 없다. 따라서 사용자로 자신을 객관화하는 능력이 가장 중요한 능력이 될 것이다. 다양한 서비스, 기술이 쏟아지고 있는 현재 UX의 중요성은 엄청나게 커질것이다. 경험과 통찰력이 중요한 분야인 것 같다. --------------------------------------------- 아래 정리
Mocking은 테스트코드와 관련이 깊다. 테스트 코드를 작성하다보면 가끔 실제로 작성할 수 없는 코드들을 마주하게 된다. (API실제 호출, 결제 등) 이런 외부 API를 테스트 코드에서 호출하게 되면 실제로 API가 작동해버릴 수 있어 조심해야한다. 이럴 때, 이런 코드들을 테스트해보려고할 때 Mocking이 그 해결책이 될 수 있다. Mcok - 놀리다, 무시하다, 가짜의 거짓된 Mocking은 실제 값으로 테스트를 하기 어려우니 가까 값을 사용할 수 있게 해주는 것이다. 사용은 이럴 때 할 수 있다. 1. 외부 API가 현재 정상적으로 작동할지 않을 때 - 항공권 서비스를 개발할때 여행사에서 운영서버로 적용할 때까지 시간이 많이 걸렸었다. 그럼 그 때까지 손놓고 기다릴 수 는 없으니 Mocking..