inflearn 26

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

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

inflearn 2024.07.03

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

@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

[인프런] 김영한의 스프링 입문 - MVC와 템플릿 엔진

MVC - thymeleaf 템플릿 엔진더보기더보기hello! emptyhtml의 파일 경로를 연 뒤 서버 없이 웹브라우저의 도메인에 그대로 입력해도 껍데기를 확인할 수 있다. 그런데 템플릿 엔진으로서 동작하면 렌더링을 하여 th:text의 내용으로 치환한 html을 반환하게 된다.정적 컨텐츠일 때는 변환하지 않고 그대로 반환한다.  단축키command + p: 파라미터 정보 확인  API1. 문자 전달@ResponseBody@GetMapping("hello-string")@ResponseBodypublic String helloString(@RequestParam("name") String name) { return "hello " + name; // hello spring} html의 head, bo..

inflearn 2024.06.25

[인프런] 김영한의 자바 기본 강의 섹션13. 다음으로 (240117)

1/17 섹션13 다음으로 필기 클래스에 데이터만 넣은 형태는 c언어의 구조체와 비슷하다. 객체지향 : 데이터는 감추고 필요한 기능들만 노출시킨다. 접근제어자 : 접근제어자의 핵심은 다 감추되 클라이언트가 꼭 필요로 하는 기능만 열어두는 것 다형성 : 다형적 참조, 메서드 오버라이딩 기본편 강의를 마치고 수료증이 나오길래 확인해 봤더니 이 강의를 24.01.04에 시작했더라 01.17에 끝낸 시점에 돌아보니 강의 듣기를 정말 잘한 것 같다. 2024년 첫 소비였는데 의미있게 잘 공부한 것 같아서 뿌듯하고 빨리 다른 강의들을 들어보고 싶다! 다형성 예제 코드는 다시 쳐 봐야겠지만... 우선은 자바를 손에 익을 만큼 코드를 쳐본 건 아니기 때문에 관련 문제나 코딩 다루는 강의를 들어보고 스프링 입문을 맛 봐..

inflearn 2024.01.17

[인프런] 김영한의 자바 기본 강의 섹션12. 다형성과 설계 (240117)

지난 글에서 다형성이 되게 이해가 잘 돼서 신나서 강의 들었다고 쓴 것 같은데 바로 다음에서 막히고 슬퍼서 쉬엄쉬엄 공부했다.. 강의 보고 코드 쳐 보고 또 강의 보고 또 쳐 보고를 반복하고 있는데 개념은 이해가 가지만 아직 객체지향이 익숙하지 않아서인지 내 코드처럼 느껴지진 않는다. 더 연습이 필요한 거겠지 부단히 노력해 보자! 관련 문제들도 찾아서 풀어봐야겠다 다시 코드 쳐 본 다음에! 1/17 다형성과 설계 필기 자동차의 역할과 구현을 분리한 이유는 클라이언트인 운전자 나를 위한 것이다. 역할을 부여했기 때문에 클라이언트는 내부구조를 알 필요도 없고 클라이언트의 코드를 변경하지 않아도 된다.(=나한테는 영향이 없다.) 그렇기 때문에 유연하고 변경에 용이하며 이렇게 함으로써 client인 내가 제일 ..

inflearn 2024.01.17

[인프런] 김영한의 자바 기본 강의 섹션11. 다형성2 (240115)

오늘은 월요일인데 사실 지난 일요일까지 자바 기본 강의를 완강하고 싶었다.. 주말이니까 좀 쉬랴, 가족도 만나랴, 대외활동 자소서도 제출하랴 할일이 조금 있었지만 오늘은 끝낼 수 있겠지! 상속부터 다형성까지 되게 중요한 부분이라고 설명해 주셔서 어려울까 내심 걱정했지만 역시 갓영한님의 설명이 더해지니 이해가 쏙쏙 되었다. 덕분에 이해가 된단 즐거움에 신나서 강의를 들었다ㅎㅎ 강의는 두말 할 것 없이 명강의지만 다형성까지 듣고나니 스스로 코드를 많이 쳐보고 싶단 생각이 들었다. 이 기록물을 올린 후엔 얼마 남지 않은 강의를 마저 들어야겠지만 빨리 관련 예제들 찾아 코드로 쳐보고 싶다! 파이팅 해야지! 1/15 섹션11 다형성2 필기 dog, cat, cow는 서로 다른 타입이기 때문에 메서드나 배열+for..

inflearn 2024.01.15

[인프런] 김영한의 자바 기본 강의 섹션10. 다형성1 (240113)

1/13 섹션10 다형성1 필기 객체지향 프로그램의 대표적인 특징은 캡슐화, 상속, 다형성이라고 한다. 그 중에서 다형성은 객체 프로그래밍의 꽃이라고 한다. 중요한 만큼 집중해서 봐야지! 다형성: 다양한 형태, 여러 형태로! - 한 객체가 여러 타입의 객체로 취급될 수 있는 능력 - 다형적 참조, 메서드 오버라이딩 다형적 참조 다양하게 참조할 수 있다. 부모 타입은 자식 타입을 담을 수 있다. ex) Parent parent = new Child(); - 가능 -- 부모 타입의 변수가 자식 인스턴스를 참조한다. 하지만 자식 인스턴스의 메서드는 호출이 불가하다. 반대로 자식 타입은 부모 타입을 담을 수 없다. ex) Child child = new Parent(); - 불가, 컴파일 오류 발생 다형적 참조..

inflearn 2024.01.14

[인프런] 김영한의 자바 기본 강의 섹션9. 상속 (240112)

요즘 9시 기상을 목표로 하루를 알차게 보내려고 노력 중인데 금요일이라 일찍 끝난 것도 있었고 놀다보니 마음을 다잡기가 어려워서 이제야 공부를 시작한다.. 사실 지금도 당장 방으로 올라가고 싶지만 우선은 이 정리부터 끝내야지 내 마음 다잡기가 이리도 힘들다 그래도 할 건 해야지 나태해지지 말자 안주하지 말자! 아자아자! 1/12 섹션9 상속 필기 상속 키워드 - extends ex) public class ElectricCar extends Car {} 상속을 누구에게서 받을지는 하나만 선택할 수 있다. 부모 클래스 (슈퍼 클래스) 자식 클래스 (서브 클래스) 상속 구조도에서 방향은 자식에서 부모 쪽으로 자식 클래스에서 누구로부터 상속 받을 것인지를 표시한다. 이 의미는 자식 클래스가 부모 클래스를 안다..

inflearn 2024.01.12

[인프런] 김영한의 자바 기본 강의 섹션8. final (240111)

01/11 섹션8 final 필기 final 전에 static 강의 들으면서 쉽지 않다란 생각이 좀 진지하게... 들었는데 final은 숨통이 트인다! 둘 다 접근 제어자면서 난이도 차이 난다고 느끼는 건 내 착각일까 하면서 static의 어려움을 중화해 보려 노력했다..(?) 변수에 final 키워드가 붙으면 더는 값을 변경할 수 없다는 의미다. -- 클래스, 메서드에도 붙을 수 있다. == 최초 한 번만 할당 가능 필드에 final 키워드를 사용할 경우, 생성자를 통해 최초 한 번 초기화할 수 있다. 하지만 생성자를 쓰지 않고 바로 값을 할당한 경우, 생성자를 통해 초기화할 수 없다. 생성자에서 초기화 - 인스턴스마다 다름 필드에서 초기화 - 인스턴스마다 같음 --> 메모리 낭비, 중복 고정된 값으로..

inflearn 2024.01.11

[인프런] 김영한의 자바 기본 강의 섹션7. 자바 메모리 구조와 static (240111)

1/11 섹션7 자바 메모리 구조와 static 필기 자바 메모리 구조 필기량이 많아서 빨리 끝낼 수 있을까 좀 걱정된다. 그래도 해야지 암! 아자아자! 지난 학기에 자바를 공부해야겠다 싶어서 도서관에서 책을 빌렸는데 거기에 자바의 메모리구조 설명이 있었다. 정말 자바에 대해 하나도 모르는 상태에서 집약적으로 설명해 놓은 책을 읽으니 당연히 이해가 잘 안 되지... 그때 찍어놓은 사진을 지금 다시 보니 무슨 내용인지 이제야 좀 눈에 들어오더라. 진짜 갓영한 선생님 아니었다면 어려워서 진작에 흘려보냈을 내용들...감사합니다🙏🙏 자바의 메모리 구조는 메서드 영역, 스택 영역, 힙 영역으로 나눌 수 있다. 메서드 영역: 클래스 정보 보관, 공통된 데이터나 코드 저장 스택 영역: 프로그램이 실제 실행되는 곳으로..

inflearn 2024.01.11