
오늘 배운 내용은 SQLD 공부할 때 한번씩 봤던 내용이라 쉽게 들을 수 있었다. SQLD 공부할 때는 이거 배워서 얻다 쓰나 괴로워 하는 내 모습에 현타가 왔었는데, 역시.. 배워놔서 도움 안되는건 없다^^ (그래도 힘들어..)
그리고 오늘 강사님이 교육생들의 실력차이에 대해 얘기해주셨는데 자세히 다 기억은 안나지만..🥹
강사님 말씀을 듣고나서 힘이 되기도 했고 나 자신을 좀 돌아보게 되었다. 나는 내가 남들보다 못하면 그걸 드러내고 싶지 않아서 자꾸 나를 꾸며내고, 그러는 과정에서 자존감도 많이 낮아졌는데 거기에 초점을 맞추지 말고 내가 얼마나 배우고 성장할 수 있는지를 가장 중요하게 생각해야 될 것 같다. 물론 그런 부분에 매우 약한 내가 변하는데에는 시간이 걸리겠지만
화이팅!
그리고 tmi인데 오늘 아침에 일어나보니 왼쪽 눈이 깜빡이기도 힘들정도로 통증이 심했다. 그래서 어쩔 수 없이 외출을 쓰고 병원을 갔다 왔다. 나는 별문제 없을줄 알았는데 생각보다 심각한 문제가 있었다.. 눈에 상처가 나서 꾸준히 치료를 해주지 않으면 대학병원에 가야될 수도 있다고 하셨다ㅜㅜ 열심히 치료받으면 나아지겠지만 요즘같이 힘든 시기에 아프기까지 하니까 좀 서럽기도 하다.
계정 생성 후 권한부여
grant all privileges on *.* to dev@localhost;
‘%’ → 모든 IP에서 접근 가능
데이터 추가 방법
insert into article SET title='제목', body='내용';
-- insert into article ( title, body ) values ( '제목', '내용' );
ALTER TABLE article add column `id` int(10);
-- 보일때 10번째 자리수까지 보임
select *now*();트랜젝션 - 더 이상 쪼갤 수 없는 최소 작업 단위
public void sendMoney(Long senderId, Long receiverId, Long value) {
Connection connection = dataSource.getConnection();
connection.setAutoCommit(false);
try {
// 한번에 처리되어야 하는 로직
connection.commit();
} catch(SQLException e) {
connection.rollback();
throw new RemittanceException();
}
} → 그러나 이렇게 되면 개발자는 핵심 비즈니스 로직에 집중할 수 없고, 여러 곳에 try ~ catch 를 반복적으로 작성해 줘야함 → AOP를 이용해 트랜젝션 분리@Transactional 어노테이션은 AOP의 개념이 적용된 것 → 비즈니스 로직에 집중된 코드를 짤 수 있고, 중복된 트랜젝션 처리 코드를 제거할 수 있음DBMS, RDBMS(→ DBMS의 한 유형)
ORM
객체와 RDB사이의 패러다임 불일치를 해소하고 일관성과 가독성을 높혀준다.
ORM이 객체와 관계 사이에서 SQL을 자동으로 생성해줌.
메소드로 DB데이터 조작 = 객체지향> OOP의 언어를 그대로 쓰면서 객체와 RDBMS의 데이터를 매핑(OOP를 OOP답게)
ex) JPA, Hibernate
(내가 이해한 것)
그럼 결국 내가 spring repository에서 작성한 코드는 ORM(jpa)를 이용해 RDBMS(mysql)에 접근할 수 있도록 해주는 것?
DAO(access), DTO(transfer)
