프로젝트 & TIL (103) 썸네일형 리스트형 24일차 - Git bash 명령어 CSS 복습 https://flukeout.github.io/ CSS Diner A fun game to help you learn and practice CSS selectors. flukeout.github.io plate apple => 가능. 스페이스는 후손을 선택 plate > apple => 불가능. >는 자식을 선택 Git Bash ~ : 홈 디렉토리 pwd : 현재 경로 clear : 화면 초기화 cd 폴더_이름 : 이동 cd ~ : 홈 디렉토리로 이동 ls : 현재 디렉토리에 있는 파일 리스트 출력 ll(ls -l) : 파일 리스트 자세하게 출력 ls -al : 파일 리스트 자세하게 출력 + 숨김 파일 표시 start . : 탐색기 열림 touch 파일_이름 : 파일 생성(파일 이름 앞에.. 23일차 - 점프 투 스프링부트 3장(2) 마크다운 dependencies { ... implementation 'org.commonmark:commonmark:0.21.0' } 스프링부트가 내부적으로 관리하는 라이브러리에 포함되면 버전 정보가 필요없고 포함되지 않으면 버전 정보가 필요하다. 즉, commonmark는 스프링부트가 내부적으로 관리하는 라이브러리가 아니다. 스프링부트가 관리하는 라이브러리의 경우 버전 정보를 명시하지 않으면 스프링부트가 가장 궁합이 잘 맞는 버전으로 자동 선택한다. 따라서 라이브러리들의 호환성을 생각한다면 버전 정보는 따로 입력하지 않는 편이 좋다. 마크다운 컴포넌트 @Component public class CommonUtil { public String markdown(String markdown) { Parse.. 22일차 - 점프 투 스프링부트 3장 스프링 시큐리티 스프링 기반 애플리케이션의 인증과 권한을 담당하는 스프링의 하위 프레임워크 dependencies { ... implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6:3.1.1.RELEASE' } build.gradle에 추가 - springsecurity6 버전 정보를 제거하고 사용하더라도 오류가 없다면 버전 정보 없이 사용하면 된다. @Configuration @EnableWebSecurity public class SecurityConfig { @Bean SecurityFilterChain .. 21일차 - 점프 투 스프링부트 2장 @SpringBootTest class SbbApplicationTests { @Autowired private QuestionRepository questionRepository; @Test void testJpa() { Optional oq = this.questionRepository.findById(2); assertTrue(oq.isPresent()); Question q = oq.get(); List answerList = q.getAnswerList(); assertEquals(1, answerList.size()); assertEquals("네 자동으로 생성됩니다.", answerList.get(0).getContent()); } } 위 코드를 실행하면 오류가 발생한다. 왜냐하면 Quest.. 20일차 - 점프 투 스프링부트 데이터 초기화(베이스 데이터 추가하기) jpa: hibernate: ddl-auto: create ddl-auto: create 상태 (update로 설정하는 방법도 있지만, row를 변경하는 sql문을 실행하면 스프링부트를 재실행해도 변경된 값이 유지된다. 그러므로 create 상태에서 베이스 데이터를 추가해주는 방법을 선택한 것!) spring: profiles: active: dev 기본적으로 dev 환경임을 명시 @Configuration @Profile({"dev", "test"}) public class NotProd { @Bean public CommandLineRunner initData(...){ return args -> { ... }; } @Profile({"dev", "test"}).. 19일차 - 스프링부트와 DB 연결하기, Spring Data JPA SELECT VERSION(); Maria DB인지 MySQL인지 확인하기 @RequiredArgsConstructor 필드 중에서 final이 붙은 것만 인자로 입력받는 생성자를 만든다. @NoArgsConstructor 인자가 없는 기본 생성자를 만든다. git reset HEAD^ 최신 커밋 취소 스프링부트와 DB 연결하기 implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' build.gradle 파일에 추가 server: port: 8010 // 서버 포트 spring: thymeleaf: // 타임리프 캐시 끄기 cache: fal.. 18일차 - 스프링부트, 세션, thymeleaf * JACKSON에 의해 객체가 문장화(JSON)되고, 이때 인자가 없고 is 또는 get으로 시작되는 메서드의 결과도 가져간다. * return 값으로 파일의 경로를 설정했을 때는 @ResponseBody를 붙이지 않는다. @RequestScope - 매 요청마다 객체가 생성된다. Request : 서버는 요청 정보들을 보관하기 위해 HttpServletRequest 객체를 생성해 정보를 저장한다. 이 객체는 응답 결과가 전송될 때까지 유지 및 사용할 수 있다. RequestScope : Request 객체를 사용할 수 있는 범위(요청~응답) 세션 쿠키 : 클라이언트, 서버가 생성/수정/삭제 가능 => 보안 취약 세션 : 서버만 생성/수정/삭제 가능, 첫 방문 시 sessionId를 매우 길게 만들어 .. 17일차 - 스프링부트 Component, Autowired Flex 복습 http://www.flexboxdefense.com/ Flexbox Defense Your job is to stop the incoming enemies from getting past your defenses. Unlike other tower defense games, you must position your towers using CSS! www.flexboxdefense.com Component와 Autowired @Component & @Service : Ioc 컨테이너에 의해 생성, 소멸이 관리된다. @Autowired : Ioc 컨테이너에 의해 관리되는 객체와 연결시켜준다. 기존 코드 @Controller public class MemberController { privat.. 이전 1 ··· 8 9 10 11 12 13 다음