본문 바로가기

Tech96

JVM의 메모리 구조 JAVA 프로그램이 실행되면, JVM은 OS로부터 이 프로그램이 필요로 하는 메모리를 할당받고, JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다. Compiler는 텍스트로 되어 있는 Source Code 를 Class File로 변환시켜 준다. Class Loader는 JVM 내의 클래스를 로드하고 Link를 통해 적절히 배치하는 일련의 작업을 수행하는 모듈로서, 런타임 시 동적으로 Class를 로드 한다.Execution Engine는 Class Loader를 통해 JVM 내의 Runtime Data Area에 배치된 바이트 코드는 Execution Engine에 의해 실행되며 Execution Engine은 JAVA 바이트 코드를 명령어 단위로 읽어서 실행한다.Runtime Data.. 2018. 5. 4.
SQL Server Data 대칭키 암호화 Data를 암호화 하는 방법은 여러가지가 있다. 보통, 지금까지 수행한 암호화 방법은 Application Layer에서 암호가 필요한 속성을 암호화 해서, DB에 저장했지만, 지금 소개할 방법은 Database Layer에서 암호화 하는 방식이다. (SQL Server 전문 강사 정원혁님의 강의를 바탕으로 실습한 내용을 포스팅하였습니다.) 첫 번째 방법은 대칭키를 이용한 암호화 방법이다. 먼저 AdventureWorks2012(AdventureWorks2012설치) Database를 선택한 다음, 아래와 같이 테스트 테이블을 만든다.Use AdventureWorks2012 go if OBJECT_ID('dbo.EmpTest') IS NOT NULL drop table dbo.EmpTest go --테이.. 2018. 5. 3.
Java Synchronized을 이용한 트랜잭션 예제 Java Synchronized(동기화)란 여러 개의 Thread가 한 개의 자원을 사용하고자 할 때, 해당 Thread만 제외하고 나머지는 접근을 못하도록 막는 것이다.이를 응용해서, 은행 ATM 의 Transaction 예를 만들어보자. 시나리오1. User01이 ATM에서 돈을 인출하려 함.2. User02가 User01이 인출하고 있는 도중에, 돈을 인출할 수 없어야 함.3. User01의 인출이 끝날때 까지 기다려야 함.* 인출의 행위는 Thread간 상호 배타적으로 동작해야 함. package com.augustine.threadtest3; import java.util.concurrent.atomic.AtomicInteger; class SyncThreadTest { public static.. 2018. 4. 26.
SQLServer AdventureWorks DB 설치 과거 SQL Server을 설치하면, Test 용 DB 인 pubs, northwind 등이 기본으로 설치되어 있는데, 최근 버전(언제부터인지는 기억 안남)부터는 Test DB가 없다. MS에서 AdventureWorks 라는 database를 제공하는데, SQL Test를 위해 사용하기에는 꽤 괜찮다. 테이블 수도 많고. 먼저, googling으로 Adventureworks2012 sample databases 라고 검색 https://archive.codeplex.com/?p=msftdbprodsamples 로 연결되는데, 과거에는 sample database를 ms에서 링크로 제공했으나, 최근에는 github로 옮겼다.(아마 MicroSoft가 최근 github을 인수한 영향인 듯 하다. 적극적으로.. 2018. 4. 25.
반응형