전체 글 90

[인프런] 김영한의 스프링 입문 - 순수 Jdbc, JdbcTemplate, MyBatis, JPA, Spring Data JPA

종강하고 며칠 지나지 않은 시점에서 스프링 입문 강의를 정리차 다시 들었다. 직전 학기에 한 강의에서는 Maven, Eclipse를 이용하여 도서관리 프로그램을 체계적으로 짰고, 다른 강의에서는 Gradle, Intellij를 기반으로 스프링을 가볍게 훑었다. 다른 글들에서 각각에 대해 정리해 두기도 했지만 강의에 나온 걸 바탕으로 하여(MyBatis는 학교에서 배운 코드를 참고하여) 다시 총정리해 볼 것이다.   제목에서 알 수 있듯이 강의는 인프런에서 김영한 님의 '스프링 입문-코드로 배우는 스프링 부트, 웹 MVC, DB접근 기술'을 참고하였다.이 강의는 입문 강의이기 때문에 간단한 데이터베이스인 h2를 사용하였는데 이것은 db 앱을 따로 설치하는 것이 아닌 웹 콘솔을 통해 접근한다.https://..

inflearn 2024.07.03

[JAVA] comparable, comparator 비교

https://st-lab.tistory.com/243 자바 [JAVA] - Comparable 과 Comparator의 이해아마 이 글을 찾아 오신 분들 대개는 Comparable과 Comparator의 차이가 무엇인지 모르거나 궁금해서 찾아오셨을 것이다. 사실 알고보면 두 개는 그렇게 어렵지 않으나 아무래도 자바를 학습하면서 객st-lab.tistory.comcomparable과 comparator는 아래의 메서드를 필수적으로 오버라이드해야 한다. 왜냐하면 이들은 인터페이스이기 때문.이 둘은 모두 객체를 비교할 수 있도록 만든다. primitive 자료형과 달리 객체 간 비교에서는 객체 내부의 속성 중 어떤 걸 가지고 비교해야 할지 기준이 모호한데 이들이 이 기준을 정해준다고 생각하면 된다. 비슷한 ..

JAVA 2024.07.03

[network] 혼자 공부하는 네트워크 01-2 주소와 송수신지 유형에 따른 전송 방식 (240702)

헤더에 담기는 대표적인 정보, 주소(address)송수신지를 특정하는 정보ex. IP 주소, MAC 주소주소가 있으면 누구에게 전송할지를 지정할 수 있다. 특정 기기 하나에 전송 or 같은 네트워크 내 모든 기기로 전송 or 같은 그룹에 속한 기기에 전송 ...송수신지 유형별 전송 방식1. 유니캐스트(unicast)하나의 수신지에 메시지를 전송송신지와 수신지가 일대일로 메시지를 주고받는 경우(가장 일반적인 송수신 형태)2. 브로드캐스트(broadcast)네트워크상의 모든 호스트에게 전송브로드캐스트 도메인(broadcast domain) - 브로드캐스트가 전송되는 범위브로드캐스트 도메인 ≒ LAN 범위3. 멀티캐스트(multicast)네트워크 내의 동일 그룹에 속한 호스트에게만 전송4. 애니캐스트(anic..

network 2024.07.02

[코딩테스트] 호제법, 소인수분해, 에라토스테네스의 체(소수 구하기) - 정수론

(유클리드) 호제법(Euclidean Algorithm)두 정수의 최대공약수(gcd; Greatest Common Divisor)를 쉽게 알아내는 방법gcd(0, A) = A모든 수는 0을 나눌 수 있다. 따라서, 0의 모든 약수는 임의의 정수 A를 포함한다. 따라서, 둘의 gcd는 A가 된다. gcd(a,b) = gcd(b, a%b) (단, a > b) -- b > a이면 값을 바꾼다  cf. 귀류법어떤 명제가 참임을 직접 증명하는 대신, 그 부정 명제가 참이라고 가정하여 그것의 불합리성을 증명함으로써 원래의 명제가 참인 것을 보여 주는 간접 증명법. [네이버사전]import java.io.BufferedReader;import java.io.IOException;import java.io.InputS..

[network] 혼자 공부하는 네트워크 01-2 컴퓨터 네트워크 거시적으로 살펴보기 - 네트워크의 분류 (240701)

1. 범위에 따른 네트워크 분류LAN(Local Area Network): 가까운 지역을 연결한 근거리 통신망WAN(Wide Area Network): 원거리LAN한정된 공간에서 한 개인이나 소규모 조직이 구축한 네트워크개발자가 주로 구축하고 관리할 네트워크WAN먼 지역을 연결하는 광역 통신망인터넷이 WAN으로 분류다른 LAN에 속한 호스트와 메시지를 주고받아야 할 때 필요ISP(Internet Service Provider)에서 구축하고 관리사용자에게 인터넷과 같은 WAN에 연결 가능한 회선(전송로)을 임대하는 등 WAN과 관련한 다양한 서비스를 제공국내의 대표적인 ISP는 KT, LG유플러스, SK브로드밴드ex. 인터넷 요금은 이러한 ISP에게 부담, WAN과 관련된 다양한 서비스 이용료그 외 네트워..

network 2024.07.01

[network] 혼자 공부하는 네트워크 01-2 컴퓨터 네트워크 거시적으로 살펴보기 - 네트워크의 기본 구조 (240701)

전체적인 큰 그림 설계 위한 시간 네트워크 기본 구조그래프: 노드(정점)와 노드를 연결하는 간선(링크, edge)으로 이루어진 자료 구조호스트: 가장자리에 위치한 노드 (우리가 주로 사용하는 기기)네트워크 장비: 중간에 위치한 노드통신 매체: 노드 간 연결하는 링크메시지: 노드 간 주고받는 정보호스트네트워크를 통해 주고 받는 메시지를 최초로 생성해서 송신하거나 수신하는 대상역할에 따른 구분- 클라이언트, 서버클라이언트: 서버에게 요청을 보내는 호스트서버: 클라이언트에게 요청에 대한 응답을 보내는 호스트네트워크 장비호스트 간 주고받을 정보가 거치는 중간 노드ex. 이더넷 허브, 스위치, 라우터, 공유기, 방화벽...역할에 따라 분류한 것일 뿐 서로가 완전히 배타적인 개념이 아니다통신 매체각 노드를 연결하는..

network 2024.07.01

[JAVA] System.in.read()

System.in.read()Scanner, BufferReader 말고 입력값을 받는다.아스키코드로 값을 받는다.버퍼를 사용하기 때문에 throws IOException 예외처리를 해 준다.숫자로 값을 받으려면 0의 아스키코드 값인 48을 빼준다. ex) -'0' , -48문자로 값을 받으려면 (char) 형변환을 해 준다.문자열 출력도 가능 -- 문자 하나당 byte로 받는데 byte 배열로 받은 후 new String(byte[])하여 출력 디버깅 모드로 1을 입력하고 엔터를 치게 되면 차례로 1의 아스키코드 값인 49와 엔터(LF; line feed) 값인 10이 들어가게 되어 원래 의도대로 실행되지 않는다. 엔터까지 인식하게 되어서! 그래서 이 점을 주의하고 사용하여야 한다. 안전하게 각각을 주..

JAVA 2024.06.30

[인프런] 김영한의 스프링 입문 - 스프링 통합 테스트

@SpringBootTest테스트 할 때도 (실제 db와 연결하는) 스프링과 같이 동작하도록  연결하는 방법보통 사용자 db 데이터가 아닌 테스트 전용 db를 따로 구축하여 테스트를 한다@Transactional테스트 케이스에 해당 애너테이션을 붙이면 테스트를 실행할 때 sql 문이 db에 반영되지 않도록 하는 방법테스트가 끝나면 롤백을 한다 (= 커밋을 안 한다)클래스 레벨에 선언하면  선언한 클래스 내부의 모든 메서드나 서브 클래스에 적용된다예를 들어 트랜잭션 시작하고 테스트 하나 실행하고 끝나면 롤백하고 ...If your test is @Transactional, it rolls back the transaction at the end of each test method by default.* T..

inflearn 2024.06.29

[network] 혼자 공부하는 네트워크 01-1 컴퓨터 네트워크를 알아야 하는 이유 (240629)

컴퓨터 네트워크여러 개의 장치가 마치 그물처럼 서로 연결되어 정보를 주고받을 수 있는 통신망그래프 형태 - 노드, 간선으로 구성인터넷여러 네트워크를 연결한 '네트워크의 네트워크'네트워크 내, 네트워크 간 통신 가능컴퓨터 네트워크를 알아야 하는 이유개발자 입장에서 컴퓨터 네트워크를 활용하는 프로그램이 많다.프로그램을 만드는 업무 - 공식 문서 내용 이해  프로그램을 유지보수하는 업무 - 오류 진단, 유지보수 도구 사용채용 공고 지원 자격 * 인터넷 구조 참조

network 2024.06.29

[Spring] Intellij 단축키 모음 (-ing)

명령어macwin(이전에 실행했던 거) 실행ctrl rshift f10현재 페이지 실행ctrl shift rctrl shift f10자동 완성shift command entershift enter커서 맨앞으로 이동fn home 키커서 맨뒤로 이동fn ->end 키단어 단위로 이동option 방향키ctrl 방향키line 이동shift option 위/아래 방향키ctrl 위/아래 방향키변수 생성option command vctrl alt v삽입ctrl enteralt insert한 줄 주석command /ctrl /블록 주석ctrl shift / shift command /option command /ctrl shift /JavaDoc 주석/** enter/** enter변수 이름 수정shift f6 (+f..

Spring 2024.06.26