
2020.01.15 하.. 오늘 뭐했지..? 알고리즘 수업이 드디어 시작되었다. 수업(?) 수업이라고 할게 있었나? 그저 혼자 읽고 또 읽고 이론활용을 어떻게 하는지 공부하였다. 우선, 공부를 하면서 힘들었던 점이 있다면 파이썬 문법이 부족하다는 것이다. 해설을 마치 이해한듯이 읽었지만 코드를 이해 못하니 제대로 이해하고 습득한게 아니었다. 본격적으로 알고리즘 수업이 들어간 만큼 이론에 집중하기 보다는 이론을 적용한 코드를 무식하게 외우고 다시금 복습하여 적용해야 겠다는 생각을했다. (사실 무식하게 공부하는 방법이 지식을 쌓는데 가장 pure 한 방식이라고 생각한다.) 이번에는 어떤 누군가에게 피해를 주고 싶지 않고, 내가 뒤쳐져 있다는 느낌을 받고 싶지 않기에 지치더라도 스스로를 꾸짖고 앞으로 나아가야..

이 글은 항해99 부트캠프를 진행하며 개인의 감정이 듬뿍 담긴 후기입니다. 참고하세요! 4일차... 첫 주차 프로젝트를 마치며 드디어 블로깅을 시작했다. 제목이 ' d+(숫자) ' 가 아닌 'd - (숫자)' 인 이유. 왜 날짜가 늘어나지 않고, 줄어드는거지? 끝나는 날만 기다리는 건가...? 'hello world' 의 세계로 들어오면서 (들어온게 맞나?ㅋㅋ) 혼자 공부해서 취업을 해야겠다는 생각을 했다. 그 이유는 프로그래머를 위한 다양한 좋은 영상들이 많이 있기에 또한 열정이 한참 끓어 올랐기에 혼자서 공부하여 '충분히' 취업을 할 수 있을 줄 알았기 때문이다. 하지만! 현실은 다르다. 필자는 시간관리를 못하고 하루하루를 흘러가는대로 허투로 보내곤 하는 사람이다... (나이를 먹어도 정신을 못차리니..
영속 계층의 작업 순서 - 테이블의 column 구조를 반영하는 VO(VALUE OBJECT) 클래스의 생성 - MyBatis 의 Mapper 인터페이스의 작성/XML 처리 - 작성한 Mapper 인터페이스의 테스트 ## VO 클래스의 작성 VO 클래스는 테이블 설계를 기준으로 작성하면 된다. BoardVO @Data public class BoardVO { private Long bno; private String title, content, wirter; private Date regdate, updateDate; } BoardVO 클래스는 Lombok의 @Data 어노테이션을 사용하여 생성자, getter/setter, toString() 만들어낸다. ## Mapper 인터페이스, Mapper XM..
- Thread 스레드의 우선 순위 - 우선 순위가 높은 스레드는 실행의 우선권을 갖는다. (현재 실행중인 스레드 보다 우선순위가 높은 스레드가 들어오면 우선순위가 높은 스레드에게 더 많은 실행시간 할당됨) - setPriority() 메소드 : 우선 순위 부여 형식 : 스레드 객체명.setPriority(우선순위값); ex) t.setPriority(10); - 우선 순위를 지정하기 위한 자바의 우선순위 상수 static final int MAX_PRIORITY // 우선순위 10 static final int NORM_PRIORITY// 우선순위 5 static final int MIN_PRIORITY // 우선순위 1 스레드 - Runnable 인터페이스 활용 - 스레드 클래스 생성(Runnable..
스레드를 생성하고 활용하는 방법은 2가지가 있다. - Thread 객체 상속받기 - Runnable 인터페이스 상속받기 ## Thread 객체를 상속받기 : 스레드로 사용할 클래스를 정의 한 후 Thread 클래스를 상속받는다. Thread 클래스 객체를 생성하여 실행하기 위해서는 run() 메소드를 오버라이딩 해주어야 한다. class NewT extends Thread{ @override public void run(){ 실행! } } public class Example { public static void main(String[] args) NewT t = new NewT(); t.start(); } } 스레드 객체인 t를 실행하기 위해서는 start() 메소드로 실행시켜주면 된다. start()..
리스너와 내부익명클래스 리스너 란? : 이벤트를 처리하는 메소드들이 정의된 인터페이스 개발자가 이벤트 리스너를 Implement 하여 클래스를 정의한 후 객체로 생성하여 이벤트가 발생하는 뷰에 설정해 놓으면 이벤트가 발생할 때 등록된 리스너 안의 콜백 메소드가 시스템에 의해 자동으로 호출됨 (하나의 리스너는 하나의 콜백 메소드를 갖는다.) btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { } }); 위의 콜백 메서드는 onClick 메서드 클릭이 될 때 마다 onClick 메서드가 실행된다. - 리스너의 원형과 익명 내부 클래스 == 리스너의 원형 public class MainAct..

thorws (예외전파) 그냥 throws라고 하고 예외를 호출한 곳으로 다시 던진다고 표현을 했는데 예외를 전파한다는 표현으로 학교에서는 수업을 진행한다. class ExceptoinAAA extends Exception{}; class ExceptoinBBB extends Exception{}; public class ExceptPropagation { public static void a() throws ExceptoinAAA,ExceptoinBBB { System.out.println("a메소드 시작"); b(); throw new ExceptoinAAA(); } public static void b() throws ExceptoinBBB{ System.out.println("b메소드 시작"); ..

- JDBC 테스트 코드 작성 : 데이터베이스가 제대로 연결이 되었는지 확인할 수 있는 테스트 코드를 작성한다. 테스트 코드는 Java와 JDBC 드라이버만으로 구현해서 먼저 테스트한다. 정상적으로 연결이 된다면 Connection 객체가 출력된다. @Log4j public class JDBCTests { static { try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (Exception e) { e.printStackTrace(); } } @Test public void testConnection() { try (Connection con = DriverManager.getConnection( "jdbc:oracle:thin:@local..