본문 바로가기

전체 글

[클린코드 완독하기] Chapter 10 클래스 Chapter 10. 클래스 01 캡슐화되어야 한다 📍 캡슐화(Encapsulation) : 객체의 실제 구현을 외부로부터 감추는 방식 클래스를 개발할 때 기본적으로 구현을 감추고, 외부 객체와 상호작용하는 부분만 노출한다. 외부의 잘못된 사용을 방지한다. 경계에서 배웠던 부분, Map public class Stack { private int topOfStack = 0; private List elements = new LinkedList( ); public List getElements( ) { return elements; } public int size( ) { return topOfStack; } public void push(int element) { topOfStack++; elements... 더보기
[AWS] SSH 키 등록 및 EC2 접속 방법 📍 AWS SSH 키 등록 AWS EC2 서비스 페이지에 접속 후. 네트워크 및 보안 섹션 하단의 키 페어를 선택하면 보이는 화면이다. 키 페어 이름 (ex. yoon) 과 유형, 형식을 사진과 같이 설정한 후 '키페어 생성' 버튼을 누른다. 그러면 "키 페어 생성 완료" 와 함께 키 페어가 동봉된 파일이 하단에 다운로드된다. 참고 : 기존의 키 페어가 있다면 그냥 가져올 수도 있다. 📍 SSH 키 권한 설정 SSH 개인키 권한 소유자에 대한 읽기/ 쓰기 권한 외 제거가 필요하다. SSH 서버 접속 시 사용할 PEM 개인키는 최소 권한이 설정되어 있어야 사용 가능하다. SSH 키는 비 대칭 키다. 개인키와 공개키로 이루어져있는데, SSH 접속을 하려는 주체와 접속하고자 하는 대상 (EC2 머신)에 각각 .. 더보기
[DevOps] WSL 소개 , 사용 설정 Ubuntu 20.04 LTS 설치 / WSL2 사용 설정 / Windows Terminal 설치 📍 WSL 소개 WSL (Windows Subsystem for Linux) 윈도우에서 ELF64 바이너리를 실행할 수 있도록 하는 기술 윈도우에서 사용 가능한 리눅스 환경 기술이라고 이해하면 쉽다. 여러 리눅스 배포판을 지원한다. EX) Ubuntu, Debian, Alpine, Fedora 등 📍 WSL 사용설정 : Windows 기능 활성화 DISM (Deployment Image Servicing and Management) 윈도우 이미지와 관련된 조작을 위한 커맨드라인 명령어 WSL 기능을 사용하기 위해서는 Windows 기능 활성화를 진행해야 한다. Powershell를 실행하고 DISM 명령어를 수행하여 필요한 기능을 활성화한다. 완료 후 재부팅을 한다. 🤚 윈도우즈 서버 시스템 리눅스 기능.. 더보기
[클린코드 완독하기] Chapter 09 단위 테스트 Chapter 09. 깨끗한 테스트 코드 01 테스트 코드의 중요성 📍 테스트 코드는 중요하다 테스트 코드는 실수를 바로잡아준다. 테스트 코드는 반드시 존재해야하며, 실제 코드 못지 않게 중요하다. 테스트 케이스는 변경이 쉽도록 한다. 코드에 유연성, 유지보수성, 재사용성을 제공하는 버팀목이 바로 단위테스트다. 테스트 케이스가 있으면 변경이 두렵지 않다. 테스트 케이스가 없다면 모든 변경이 잠정적인 버그다. 테스트 커버리지가 높을수록 버그에 대한 공포가 줄어든다. 지저분한 테스트 코드는 테스트를 안하니만 못하다. 테스트의 중요성 🤚. 테스트는 실사용에 적합한 설계를 끌어내준다. 🤚. 테스트를 작성해서 얻게 되는 가장 큰 수확은 테스트 자체가 아니다. 작성 과정에서 얻는 깨달음이다. 📍 테스트 코드는 자동.. 더보기
[클린코드 완독하기] Chapter 08 모호한 경계를 구분짓기 Chapter 08. 모호한 경계를 구분짓기 01 경계 오픈소스, 라이브러리를 안쓰는 프로젝트는 없다. 우리가 만든 코드에 외부에서 들어온 코드를 병합해야한다. 외부 코드는 외부에서 만든 코드인데, 외부 시스템과 호출하거나 단순히 외부에서 만들어진 코드일 수 있다. 우리 코드와 외부 코드를 깔끔하게 통합시키기 위해 경계를 잘 지어야 한다. 02 경계 짓기 (1) 우리 코드를 보호하기 캡슐화 (Encapsulation) 📍 객체의 실체 구현을 외부로부터 감추는 방식 📍 Sensor를 관리해야 한다. Sensor는 외부에서 사용된다. Sensor Id와 Sensor 객체로 저장하고 싶어서, Map을 사용한다. 하지만 Map을 그대로 사용하면 Map이 가진 clear()가 외부로 노출된다. Sensor의 '외.. 더보기
[210929] 백준 2751번 문제 풀이 / 수 정렬하기 2 문제의 핵心 1. 데이터 개수가 최대 1,000,000개다. 2. 카운팅 정렬을 활용하여 빠르게 정렬한다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Q7_2751 { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); boolean[] arr = new boole.. 더보기