분류 전체보기 495

[Spring] how to get selected option value by requestParam in spring thymeleaf

@Requestparam의 쓰임에 대해 헷갈리는 부분이 있었습니다. 따라서 이번 포스팅에서는 @RequestParam에서 select tag의 필드를 직접 가져올 수 있는 이유에 대해 예시 코드를 바탕으로 이해해보는 시간을 가져보도록 하겠습니다. thymeleaf.html 회원선택 Controller.class @PostMapping("/order") public String order(@RequestParam("memberId") Long memberId, @RequestParam("itemId") Long itemId, @RequestParam("count") int count){ orderService.order(memberId, itemId, count); return "redirect:/orde..

IT/디버깅 2022.09.02

[컴퓨터구조] 기본 구성 요소

이번 포스팅에서는 컴퓨터의 기본 구성요소인 중앙처리장치, 저장장치 등이 각각 어떤 요소로 구성되어 있고 어떤 역할을 하는지에 대해 알아보겠습니다. 기본 구성요소 - CPU 개념 중앙처리장치인 CPU는 프로세서라고도 불립니다. 컴퓨터 시스템에 부착된 장치의 동작을 제어하고 명령을 실행합니다. 주기억장치의 메모리에서 명령어를 갖고와 명령대로 실행하는 작업을 빠르게 반복합니다.(Fetch + Execution). 구성 제어 장치, 연산 장치, 레지스터, CPU 내부버스로 구성되어 있습니다. ①제어 장치 메인 메모리로부터 적절한 순서로 명령어를 인출, 해독해 컴퓨터 시스템과 연결된 장치들에 제어신호를 보냅니다. ②연산 장치 제어 장치의 명령에 따라 연산을 수행하는 장치입니다. 실행 장치 혹은 ALU로도 불립니다..

CS/컴퓨터구조 2022.09.02

Failed to load ApplicationContext 에러 해결

인프런 jpa 스프링 활용 강의를 듣던중, Failed to load ApplicationContext 에러가 발생하였는데, 이를 해결하는 과정을 기록해두려고 한다. 에러코드 java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:132) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(Defaul..

IT/디버깅 2022.08.23

[Spring] JSP 대신 Thymeleaf를 사용하는 이유

클라이언트에게 동적인 웹페이지를 보여주기 위해 JSP, Thymeleaf 등 다양한 방식이 있습니다. 스프링에서는 Thymeleaf를 권장하고, 최근 개발자들 또한 jsp 대신 thymeleaf를 사용하는 추세입니다. 그렇다면 그 이유는 무엇인지 thymeleaf의 장점을 중심으로 알아보는 시간을 가져보겠습니다. Thymeleaf의 장점 1. thymeleaf가 jsp에 비해 이상한 태그도 없고, 같은 의미를 가진 속성을 가지기 때문에 더 HTML 스럽습니다. 2. JSP와 달리 프로토타입 코드를 작성할 수 있습니다. 기존에 html 코드와 타임리프 코드를 동시에 사용할 경우, 타임리프가 이를 대체할 것임이 명백하기 때문입니다. JSP는 기존의 html 코드와 동시에 코드를 작성할 수 없어 프로토타입 코..

백엔드/Spring 2022.08.22

[JPA] 값 타입 컬렉션 @ElementCollection과 @CollectionTable 활용 예시

db에는 컬렉션을 저장할 수 없습니다. 따라서 jpa의 값 타입 컬렉션은 @ElementCollection과 @CollectionTable 어노테이션을 통해 구현할 수 있습니다. 이번 글에서는 이 어노테이션들을 활용한 값 타입 컬렉션의 개념과 특징, 수정에 대해 알아보겠습니다. 목차 1. 값 타입 컬렉션의 개념과 특징 2. 값 타입 컬렉션의 수정 값 타입 컬렉션의 개념과 특징 1. 개념 값 타입을 컬렉션에 담아 사용하는 것을 의미합니다.DB에서는 따로 컬렉션을 저장할 수 없으므로, 컬렉션에 해당하는 테이블을 하나 추가하여 컬렉션을 구현합니다. 이를 위해 @ElementCollection과 @CollectionTable 어노테이션을 사용합니다. 2. 특징 ① 값 타입 컬렉션은 값 타입과 마찬가지로, 따로 ..

백엔드/JPA 2022.08.22

[JPA] 기본 값 타입과 임베디드(embedded) 타입

JPA 의 대표적인 값 타입인 기본 값 타입과 임베디드 타입에 대해 알아봅니다. 목차 1. 기본 값 타입 2. 임베디드 타입 기본 값 타입 1. 개념 int, String, Long처럼 단순히 값으로 사용되는 자바의 기본 타입입니다. 식별자가 없고 값만 있어 변경하면 추적이 불가능합니다. 예를 들어 아래의 코드에서 a 값을 변경해도, b가 추적할 수 없습니다. 코드 예제 int a = 10; int b = a; a = 20; System.out.println("a = " + a); System.out.println("b = " + b); // 여전히 10입니다. 2. 종류 ① 자바 기본 타입 (int, double) ② 래퍼 클래스 (Integer, Long) ③ String 3. 특징 ① 생명 주기를 ..

백엔드/JPA 2022.08.19

한계를 넘는 기술 독후감 및 정리

한계를 넘는 기술 1. 똑똑하게 노력하고 합리적인 방법으로 세상의 흐름을 활용하는 것은 과학적으로 운명을 바꾸는 기술이다. P.15 2. 미래 직업에 통용되는 힘은 '기기를 활용한 학습과 정보 처리 능력, 대뇌를 이용한 통합적이고 창조적인 사고력, 시스템적 사고방식으로 문제를 생각하는 능력'이다. P.33 3. 노력과 타고난 재능, 기회만으로 엄청난 성공을 거두는 사람은 없다. 폭발적인 성장으로 고수의 반열에 오른 사람들은 모두 사회 기저에 깔린 법칙을 활용했다. P.41 4. 책을 읽고 사람을 만나고 능력을 연마하는 것보다는 어떤 책을 읽을 것이며 누구를 만나고 무슨 능력을 갈고 닦을 것인지, 그리고 어떤 기회를 잡을 것인지 선택하는 것이 더 중요해졌다. P.69 5. 해피존에 들어온 공만 치고 홈런에..

기타/독서 2022.08.16

[데이터베이스] 트랜잭션의 개념과 ACID 특징 정리

데이터베이스 트랜잭션의 개념과 ACID 특성에 대해 알려드리고자 합니다. 트랜잭션이란 복수 쿼리를 한 단위로 묶은 것이며, ACID 특성에는 원자성, 일관성, 고립성, 지속성이 있습니다. 이 글에서는 이에 대해 자세히 알아보려 합니다. 데이터베이스 트랜잭션 개념 데이터의 갱신은 단일 쿼리만으로 구성되는 것이 아니라, 복수 쿼리를 연속적으로 수행하는 경우가 대부분이다. 또한 갱신 전의 데이터로 SELECT를 사용할 때 이를 포함해 복수 쿼리를 일관된 형태의 한 덩어리로 다뤄야 한다. 트랜잭션이란 이런 복수 쿼리를 한 단위로 묶은 것이다. 데이터베이스 트랜잭션 특성(ACID) ① 원자성 데이터의 변경(INSERT/DELETE/UPDATE)을 수반하는 일련의 데이터 조작이 전부 성공할지 전부 실패할지를 보증하..

[C언어] 문자열 포인터와 문자열 배열 차이 정리

C언어에는 문자열을 다루기 위해 문자열 포인터를 사용하거나 문자열 배열을 사용합니다. 이 둘은 비슷한 것같지만 다르므로 명확히 구분해 이해해야합니다. 문자열 포인터은 특정 포인터에 문자열의 주소를 저장한 것이고, 문자열 배열은 문자를 배열의 형식으로 저장한 것입니다. 문자열 포인터와 문자열 배열의 개념 char name[5] = "1234"; // 문자열 배열 const char* str = "yahoo"; // 배열 포인터 문자열 배열은 말그대로 문자를 배열의 형식으로 저장한 것을 말한다. 특히 문자열 배열은 포인터 상수와 동일하다. 포인터 상수이기 때문에 메모리의 위치를 바꿀 수 없는데 이는 특징에서 자세히 설명한다. 문자열 포인터는 특정 포인터에 문자열의 주소를 저장한 것이다. 문자열 포인터와 문자..

MySql 중복 행 서브 쿼리문에 join이 사용되는 이유

[데이터베이스] MySql 중복 행 서브 쿼리문에 join이 사용되는 이유 목차 1. 문제 상황 2. 해결 과정 3. 해결 문제 상황 각 행정구역의 평균보다 인구수가 더 큰 정보를 쿼리하라. select * from citykorea c1 where population > (select avg(population) from citykorea as c2 where c1.district = c2.district group by district); 데이터베이스 첫걸음 서브 쿼리문 공부중 c1.district = c2.district라는 코드는 왜 들어가는지 의문이 생겼다. sql 쿼리 순서상 where 다음 group by가 오므로 서브 쿼리문의 where을 연산할 당시의 c1.district = c2.dis..