SSD 교체후 남은 HDD로 외장하드 만들기
·
🎮 컴퓨터,취미
X220의 하드디스크를 SSD로 교체하고 남은 HDD를 그냥 놀리긴 아까우니 외장하드로 만들어 사용하기로 했다. 안그래도 카메라로 찍은 사진들이 맥북 용량을 차지하고 있어서 마침 잘 된 것 같다. 외장하드 케이스는 인터넷에서 쉽게 구할 수 있다. 나 같은 경우는 쿠팡에서 ipTIME 외장 케이스 HDD3225를 구매했는데, 다른 케이스들 보다 가격은 좀 높은데 USB 3.1과 C-Type 단자를 지원해서 이걸로 선택했다. 구매 링크 : https://coupa.ng/bJ0dpL ipTIME 하드외장 케이스 HDD3225 하드미포함 COUPANG www.coupang.com 구성품은 간단하다. 설명서, 파우치, 고정 나사와 스티커(?), USB C to A 케이블, 본체가 들어있다. 다음으로 X220에서 ..
MySQL의 격리수준
·
💻 개발/MySQL
트랜잭션 격리 수준이란? 트랜잭션의 격리 수준(Isolation level)이란 DB에 동시에 여러개의 트랜잭션이 처리될 때 특정 트랜잭션에서 변경 또는 조회하고 있는 데이터를 다른 트랜잭션이 어느 정도까지 조회할 수 있는지를 결정하는 것을 말한다. 말 그대로 서로 다른 트랜잭션들이 서로 어느 정도까지 격리가 되어야 하는지를 나타낸 것이다. 격리 수준은 크게 아래의 4가지로 나뉜다. Read Uncoommitted Read Committed Repeatable Read Serializable 위에서 아래로 갈 수록 트랜잭션간 격리 수준이 높아지며, 일반적으로 격리 수준이 높아질수록 동시성은 떨어지게 된다. Read Uncommitted 격리 수준이 Read Uncommitted 일 때는 각 트랜잭션서의 ..
Thinkpad X220 SSD 교체
·
🎮 컴퓨터,취미
집에서 놀고있던 X220의 HDD를 SSD로 교체했다. 2013년인가? 대학생 때 학교 다니면서 과제도 하고 프로그래밍 공부도 하려고 중고로 80만원에 구매했던 기억이 난다. 화면은 작아도 키보드가 좋아서 코딩도 하고 이것 저것 많이 했는데 맥북을 사용하고 나서 부터 잊혀진 노트북. 그래도 간간히 윈도우에서 인터넷 뱅킹이나 민원24 같은 공공기관 업무 볼 때 종종 사용하긴 했는데, 문제는 HDD가 너무 느리다는것이었다. CPU는 i7이고 램도 8G라서 나쁘진 않은 스펙인데 HDD가 달려있다보니 전반적으로 느린건 어쩔수가 없어서 이번에 맘 먹고 교체하기로 했다. 준비물 : 드라이버, SSD, X220 먼저 기존의 HDD를 제거해준다. 노트북을 뒤집어서 왼쪽에 있는 나사를 풀어준 뒤 저 검은색 테이프?를 당..
윈도우 10 USB 부팅 디스크 만들기
·
🎮 컴퓨터,취미
맥북을 사용하고 나서 부터 잘 사용하지 않게 된 레노버의 X220 노트북을 좀 손 보기로 했다. 일단은 성능에 가장 큰 영향을 주는 HDD부터 SSD로 교체하기로 했다. 새 SSD에 윈도우를 설치하기 위해 알아보던 중 USB로 간단하게 윈도우10 부팅 디스크를 만들 수 있는 방법이 있어서 과정을 정리해본다. 1. USB 준비 집에 굴러다니는 USB를 하나 준비한다. 최소 8기가 이상의 USB가 필요하다. 노트북에 꽂는다. 이미 포맷이 되어 있으면 그냥 사용해도 큰 문제는 없지만 확실히 하기 위해 포맷을 먼저 진행한다. USB 드라이브 아이콘의 우클릭 메뉴에서 포맷을 클릭한다. 파일 시스템을 FAT32 형식으로 선택하고 시작 버튼을 클릭하여 포맷을 진행한다. 당연한 말이지만 포맷을 하면 USB의 모든 데이..
MySQL에서의 트랜잭션
·
💻 개발/MySQL
MySQL에서의 트랜잭션 MyISAM은 트랜잭션을 지원하지 않음 InnoDB는 트랜잭션을 지원함 InnoDB 엔진은 쿼리 중 일부라도 오류가 발생하면 전체를 원상태로 만들어 두는 트랜잭션의 원칙을 따른다. MyISAM은 일부 오류가 발생하는 경우 부분 업데이트(Partial Update) 현상이 발생한다. 부분 업데이트 현상은 데이터의 정합성을 맞추는 작업을 어렵게 만든다. 트랜잭션이란 애플리케이션 개발에서 고민해야할 문제를 줄여 주는 아주 필수적인 DBMS의 기능이다. 트랜잭션 구현시 주의사항 트랜잭션은 DBMS 커넥션과 마찬가지로 꼭 필요한 최소의 코드에만 적용해야 한다. (프로그램 코드에서 트랜잭션의 범위를 최소화) 외부 네트워크 작업(메일, 큐 발송 등)은 반드시 트랜잭션에서 배제해야 한다. (롱..
Ubuntu에 Nginx 설치하고 실행 해보기(feat. Docker)
·
💻 개발/Nginx
회사에서 nginx 설정을 볼 일이 생겼는데 직접 설정 해본 경험이 없어서 설정파일이 어디 있는지도 몰랐다. (..) 집에 있는 맥북에 nginx를 설치해서 설정을 이것 저것 해 보면서 공부를 하고 싶었으나, 맥에 직접 설치하면 괜히 지저분해 질 것 같아서 Docker를 이용해 설치를 해보았다. 도커 이미지 받기(pull) 도커 허브(https://hub.docker.com)에 가면 도커에서 제공하는 여러 이미지를 볼 수 있다. nginx 공식 이미지도 있긴한데, 나는 직접 설치하는 것 까지 해보고 싶어서 ubuntu 이미지를 받았다. 커맨드에서 아래 명령어를 입력해 ubuntu 이미지를 받는다. ➜ ~ docker pull ubuntu 다운 받은 이미지 목록을 아래 명령어로 확인한다. ➜ ~ docke..
Mockito : Mock 리스트를 주입하고 테스트 하기
·
💻 개발/Java
상황 스프링을 사용하여 빈을 주입 받을때, 같은 타입(interface)을 구현한 빈들을 아래와 같이 컬렉션으로 주입 받아 사용하는 경우가 있다. public interface Validator { void validate(Order order); } @Service public class OrderValidationService { @Autowired private List validatorList; public void validate(Order order) { for (Validator component : validatorList) { component.validate(order); } } } 단위 테스트 프레임워크로 JUnit을 사용하고 Mockito 라이브러리를 사용할 때, OrderValid..
Java Stream에서 allMatch() 사용시 주의할 점
·
💻 개발/Java
Stream.allMatch() Java 8에 포함된 Stream 클래스에는 모든 요소들이 주어진 조건에 만족하는지 여부를 검사하는 allMatch()메서드를 제공한다. 예를 들어, 모든 회원의 나이가 5살 이상인지 검사하는 테스트 코드를 다음과 같이 작성할 수 있다. @Test public void allMatchTest1()) { List members = new ArrayList(); members.add(Member.withAge(10)); members.add(Member.withAge(20)); members.add(Member.withAge(30)); boolean result = members.stream().allMatch(member -> member.getAge() > 5); asse..