본문 바로가기

전체 글

(81)
토비의 스프링 #4. 예외 4.1 사라진 SQLEXCEPTION 4.1.1 초난감 예외처리 예외 블랙홀 // #1 catch (SQLException e){ } // #2 catch (SQLException e){ System.out.println(e); e.printStackTrace; } 무의미하고 무책임한 throws // #3 public void method () throws Exception{ } 4.1.2 예외의 종류와 특징 Error java.lang.Error 시스템의 에러 Exception과 체크 예외 개발자들이 만든 애플리케이션 코드의 작업 중에 예외상황이 발생했을 경우에 사용 Exception은 다시 체크 예외와 언체크 예외로 나누어짐 전자는 Exception 클래스의 서브 클래스이면서 RuntimeExcep.. 더보기
토비의 스프링 #2 테스트, #3 템플릿 2장 테스트 스프링이 개발자에게 제공하는 가장 중요한 가치가 무엇이냐고 질문한다면 나는 주저하지 않고 객체지향과 테스트라고 대답할 것이다. p145 애플리케이션은 계속 변하고 복잡해져 간다. 그 변화에 대응하는 첫 번째 전략이 확장과 변화를 고려한 객체지향적 설계와 그것을 효과적으로 담아낼 수 있는 IoC/DI 같은 기술이라면, 두 번째 전략은 만들어진 코드를 확신할 수 있게 해주고, 변화에 유연하게 대처할 수 있는 자신감을 주는 테스트 기술이다. p145 2.1 UserDaoTest 다시보기 2.1.1 테스트의 유용성 테스트란 결국 내가 예상하고 의도했던 대로 코드가 정확히 동작하는지를 확인해서 만든 코드를 확신 할 수 있게 해주는 작업이다. 2.1.2 UserDaoTest의 특징 public clas.. 더보기
day 4. 쉘 프로그래밍 - scp #ssh ssh를 통해서 원격으로 접속하는 경우 user id와 password를 계속 입력해야 한다. 이 때 공개키 암호화방식으로 key를 생성해서 저장해둔다면 로그인 할 때 매번 비밀번호를 입력하지 않아도 된다! 아래는 key를 생성하는 명령어 및 복사하여 서버에 저장해 두는 명령어이다. ssh-keygen ssh-copy-id user@ip주소 #scp SCP는 secure copy의 약자이다. 원격지에 있는 서버에서 파일을 송수신할 때 암호화하여 전송해주는 프로토콜이라고 생각하면 된다. ssh접속이 가능한 ip의 경우 scp도 가능하다. scp의 명령어의 사용은 다음과 같다. 1. 원격지로 파일 복사할 때 scp 파일명 원격지ip:위치(절대경로) 2. 원격지에서 파일을 받을 때 scp 원격지ip:.. 더보기
tar 파일이란 ? 리눅스를 사용하는 사람이라면 tar파일을 많이 보았을 것이다. tar는 리눅스의 대표적인 압축 프로그램이다. 대부분은 세가지 파일확장자로 나뉘는데 파일명.tar.gz 파일명.tar.bz 파일명.tar.xz 이 확장자가 어떻게 다른가? 압축파일의 확장자는 압축을 하는 방식(옵션)에 따라 달라진다. 파일명.tar.gz : -z 파일명.tar.bz : -j 파일명.tar.xz : -J 예를들면 파일을 -z 옵션으로 tar 압축을 하면 .tar.gz이라는 파일이 만들어진다. 압축을 풀때에도 마찬가지로 동일한 옵션을 줘야한다. 더보기
리눅스 쉘과 명령어 기초 쉘이란 커널과 사용자 사이의 인터페이스 라고 보면 된다. Shell을 사용하는 경우 서버에서 접속해서 사용하는 경우 crontab 등 Linux의 내장 기능을 활용하는 경우 데이터 전처리를 하기 위해 shell command를 사용하는 경우 Docker를 사용하는 경우 수 백대의 서버를 관리할 경우 Jupyter Notebook의 cell 앞에 !를 붙여서 shell command를 사용하는 경우 터미널에서 python3, jupyter notebook을 실행하는 경우 배포 파이프라인(Github Action 등)을 실행하는 경우 쉘의 종류 Bourne Shell Bash(Bourne Again Shell) C-Shell KornShell Shell의 기본 Command man command(1), sy.. 더보기
토비의 스프링 #1 오브젝트와 의존관계 1. 초난감 DAO (안좋은 코드란 무엇인가?) 요구사항에 맞는 코드를 작성했다면 원하는 기능을 수행할 것이다. 그렇다면 이러한 코드가 좋은 코드라고 할 수 있을 것인가? No! 당장에는 문제가 발생할 수도 있고 그렇지 않을 수도 있다. 하지만 미래에 코드의 개선이 필요할 때가 온다면? 어떤 코드가 개선이 쉽게 될 수 있을것인가? 2. 분리 관심사의 분리 : 관심이 같은 것끼리는 하나의 객체 안으로 또는 친한 객체로 모이게 하고, 관심이 다른 것은 가능한 한 따로 떨어져서 서로 영향을 주지 않도록 분리하는 것. 모든 것을 뭉뜽그려서 한데 모으는 편이 처음엔 쉽고 편하다. 그런데 언젠가는 그 뭉쳐 있는 여러 종류의 관심사를 적절하게 구분하고 따로 분리하는 작업을 해줘야만 할 때가 온다. 관심사가 같은 것끼.. 더보기
생활코딩 - HTML Hyper Text Markup Language! 우리는 하루에도 수백번씩 웹에 접근을 한다. 이 웹페이지의 근본을 이루는 것은 html이라는 언어이다. 이 언어의 문법을 알아보자. html은 사실 컴퓨터의 프로그래밍 언어 중 가장 쉬운언어라고 가히 말할 수 있다. 그 이유는 문법이 매우 쉽기 때문이다. 그 문법 중 가장 큰 부분을 차지하는 것은(?) 바로 tag 이다. Html 에서 tag 란 정보를 표현하는 방법이다. 이는 예제를 사용하면 쉽게 파악할 수 있다. 이라는 태그를 살펴보자. html 이라는 tag를 사용한다면 html이라는 글자가 굵게 표시된다. html html여기에 u tag를 사용한다면 underline 즉 밑줄이 그어짐을 알 수 있다. 다시한번 html 이라는 tag 를 살펴보자... 더보기
Big-Endian, Little-Endian Big Endian, Little Endian Byte Ordering 이란 메모리의 Byte Ordering이라는 것은 메모리의 번지를 읽는 순서 Big -> Little, Little -> Big 두가지로 나눈다. Big Endian : n번지, n+1번지 n+2번지 n+3번지의 순서 Little Endian : n+3, n+2, n+1, n번지의 순서 big endian byte ordering으로 1은 0000...0001 이라면 little endian byte ordering의 1은 0001...0000 이 된다. 더보기