본문 바로가기

분류 전체보기

(46)
[토비의 스프링 정리] #3 템플릿의 대해서 리뷰 및 기록 토비의 스프링을 읽고 개인적으로 기록을 하고 있어요 :) 템플릿: 변화가 일어나지 않는 부분과, 변화가 일어나는 부분을 독립시켜서 효과적으로 활용할 수 있도록 하는 방법 예외 처리 없는 deleteAll() 함수 로직의 대해서 예외가 발생했을 때의 로직을 추가해 보자. // 수정 전 public void deleteAll() throws SQLException { Connection c = dataSource.getConnection(); PreparedStatement ps = c.prepareStatement("delete from users"); ps.executeUpdate(); ps.close(); c.close(); } // 수정 후 public void deleteAll() throws SQ..
[토비의 스프링 정리] #2 테스트의 대해서 리뷰 및 기록 토비의 스프링을 읽고 기록을 하기 위한 개인적인 포스팅이에요 :) 서비스는 계속 변하고 개발이 필요하다. 변화에 대응하는 첫 번째 전략은 앞에서의 학습[0]을 진행했던, 객체지향의 설계 IoC/DI 기술을 활용하는 것이다. 두 번째 전략은 코드를 확신할 수 있게 만들고, 변화에 유연하게 대처할 수 있는 자신감을 주는 테스트 기술이다. 이번 파트에서는 테스트의 대한 학습이 진행되겠다. 테스트의 필요성에 대해서 알아보자. 처음 개발을 배울 때는 기능들을 직접 눌러가면서 테스트를 한다. 이렇게 main 함수를 실행하며 웹을 통해서 직접 테스트를 하는 경우 어떤 불편함과 문제가 있을까? 모든 레이어의 기능들을 다 만들고 나서야 테스트가 가능하다. 테스트 코드를 작성하면 최초 개발을 진행했 던 기능의 동작을 보장..
div 태그의 특징 3가지 (HTML/CSS 내 레벨 확인) 안녕하세요. 이번 시간에는 div 태그의 특징 3가지를 알아보도록 하겠습니다. 오해도 생기고 헷갈리기 쉬운 내용들인데요. 문제도 풀어보시면서 내가 HTML/CSS를 어느 정도 알고 있는지도 확인해 보세요 :) 알고 있으신 내용이면 리마인드를 하실 수 있는 기회가 되고, 모르시는 내용이라면 꼭 숙지를 해주셨으면 좋겠습니다. 첫 번째, div 태그는 Inline level vs Block level 중 어떤 레벨의 태그에 속할까? Block level입니다😄 Inline level과 Block level의 큰 차이점을 보면 Inline은 하나의 라인에 쭉 생성이 돼요. 하지만 Block level은 블록이 만들어지는데요. 여러 개의 를 층층이 쌓게 되면, 블록들이 줄이 바뀌면서 층층이 쌓이게 되겠습니다. 다..
[스프링] H2 데이터베이스 콘솔 로그인 스프링 부트로 스프링을 시작 시 별도의 H2 데이터베이스 설치가 없어도, 자동으로 H2 데이터베이스를 실행시킬 수 있습니다. H2 임베디드로 내장이 되어 있기 때문인데요. 스프링 사용 시 로컬에서 개발을 할 때는 H2 데이터베이스가 정말 편리해요. 자꾸만 잊는 H2 데이터베이스의 콘솔 로그인. 초기 프로젝트 세팅 시 콘솔 로그인을 필요로 하여, 콘솔 로그인 방법을 작성 해놓도록 하겠습니다. 가장 먼저 필요한 의존성을 추가해주세요. 1. build.gradle 파일에 h2 의존성 추가 dependencies { ... runtimeOnly 'com.h2database:h2' ... } 2. application.yaml 파일에 콘솔 로그인을 위한 설정 추가 (들여쓰기 주의 해주세요) spring: h2: ..
[토비의 스프링 정리] #1 오브젝트와 의존관계의 대해서 리뷰 및 기록 토비의 스프링을 읽으며 개인 기록 공간이에요. 자바 개발자가 아니라면 분명 학습하기 어려운 책이지만😢 자바 개발자뿐만 아니라 모든 개발자가 학습을 하면 좋겠다. (자바, 스프링을 활용하는 개발자도 어렵게 다가올 수 있는 책이다.) 시간을 들여서 천천히 공부하고 습득해야 될 책이다. 매일 매일 읽고 직접 타이핑을 하면서 익혀보자. 더 나은 개발자가 될 수 있다. 개발에서는 모든 것은 수정될 수 있고 요구사항들이 변한다. 그럼 변화의 어떻게 대응할 것이고, 변하를 위한 코드를 어덯게 작성할 것인가? 변경이 있을 때 단 3줄만 고칠 것인가? 아니면 300줄을 고칠 것인가? 변경의 걸리는 시간뿐만 아니라, 검증 시에도 전자의 검증 시간은 5분, 후자의 검증시간은 5시간이 걸릴 수 있다. 변화의 대응할 수 있는 ..
Ep 3. HTML / CSS 입문 30일 챌린지(마무리) - 독학 개발 공부 유튜브 영상: 링크 HTML / CSS 입문을 위한 30일 챌린지를 진행하였고, 진행하면서 배웠던 점과 내용들을 공유를 해볼게요 :) HTML / CSS 30일 챌린지를 통해서 배운 점 HTML / CSS를 활용하여 웹 페이지를 만들 수 있다. 정말 어설프게 알고 있던 HTML/CSS 지식을 학습할 수 있었다. (e.x, block 태그, inline 태그의 특징 / 이미지는 지정하지 않을 시 원본 크기 / width와 height 기준 등등) 기준이 생겼기에 모르는 내용은 찾아서 학습을 할 수 있다. 자연스럽게 생긴 HTML / CSS의 자신감 연습 페이지 (결과물) 2주 차에서 만든 링크트리 보다 난이도를 올렸습니다. MDN을 통해서 개념정리를 하고 3개의 웹 페이지를 더 만들면서 연습을 해봤는데요...
[git 에러] refusing to allow a Personal Access Token to create or update workflow 내용 및 에러 발생: 작업을 마치고 Github에 push를 하면서 에러가 발생을 했어요. To https://github.com/junngo/mint-server.git ! [remote rejected] master -> master (refusing to allow a Personal Access Token to create or update workflow `.github/workflows/django.yml` without `workflow` scope) CI / CD 구축을 위해서 Github 내에서 action 내용을 추가하였습니다. 그리고 push를 하려고 하니 위와 같은 에러가 발생을 하였는데요. 에러 내용을 보면 토큰이 거절을 당했습니다. 기존에 사용하는 토큰이 workflow 범위는 ..
[JPA 실습] java.lang.IllegalArgumentException: Unknown entity 에러 JPA 실습 중 에러가 발생했어요😢 java.lang.IllegalArgumentException: Unknown entity: com.example.jpaplayground.start.Member at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:759) at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:742) at com.example.jpaplayground.start.JpaMain.logic(JpaMain.java:42) at com.example.jpaplayground.start.JpaMain.main(JpaMain.java:21) 스프링 프레임워크의 도움 없이..