묻고 답해요
137만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결따라하며 배우는 MySQL on Docker
CentOS EOS에 따라 기존의 레포지토리 내 패키지들이 삭제되어에러 발생!
안녕하세요! CentOS의 EOS가 종료됨에 따라 레포지토리가 더이상 사용할 수 없게 되어서docker build -t mysql57.0.0 ./ 명령어 시에 아래와 같은 에러가 발생합니다. $ docker build -t mysql57.0.0 ./ ... ... => ERROR [ 5/12] RUN yum install -y perl.x86_64 libaio.x86_64 numactl-libs.x86_64 net-tools.x86_64 sudo.x86_64 Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=container error was 0.572 14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error" 이는 레포지토리가 더이상 지원하지 않아서 yum install -y 할 때 나타나는 에러입니다. 그래서 /etc/yum.repos.d/CentOS-Base.repo 의 내용을 아래와 같이 변경해야합니다.[base] name=CentOS-$releasever - Base # original #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ # new baseurl=http://centos.mirror.cdnetworks.com/7/os/x86_64 gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #released updates [updates] name=CentOS-$releasever - Updates # original #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ # new baseurl=http://centos.mirror.cdnetworks.com/7/updates/x86_64 gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras # original #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ # new baseurl=http://centos.mirror.cdnetworks.com/7/extras/x86_64 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus # original #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/ # new baseurl=http://centos.mirror.cdnetworks.com/7/centosplus/x86_64 gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 그리고 CentOS-Base.repo 파일을 Dockerfile에 추가하였습니다FROM centos:7 COPY ["Percona-Server-client-57-5.7.30-33.1.el7.x86_64.rpm",\ "Percona-Server-server-57-5.7.30-33.1.el7.x86_64.rpm", \ "Percona-Server-shared-57-5.7.30-33.1.el7.x86_64.rpm", \ "Percona-Server-shared-compat-57-5.7.30-33.1.el7.x86_64.rpm", \ "node_exporter-1.0.1.linux-amd64.tar.gz", \ "mysqld_exporter-0.12.1.linux-amd64.tar.gz", \ "start_node_exporter.sh", \ "start_mysqld_exporter.sh", \ ".my.cnf","/tmp/"] COPY CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo USER root RUN groupadd -g 1001 mysql RUN useradd -u 1001 -r -g 1001 mysql RUN yum install -y perl.x86_64 \ libaio.x86_64 \ numactl-libs.x86_64 \ net-tools.x86_64 \ sudo.x86_64 RUN yum downgrade -y openssl-libs-1.0.2k-16.el7 -> 다운그레이드! ... ... ... COPY CentOS-Base.repo /etc/you.repos.d/CentOS-Base.repo를 추가하고 나서docker build -t mysql57.0.0 ./ 실행하니까 정상적으로 잘 되네요! 그리고 이유는 모르겠으나 yum install -y penssl-libs-1.0.2k-16.el7을 하면 패키지 버전 충돌때문에 빌드 시 에러가 발생합니다.yum install -y penssl-libs-1.0.2k-16.el7를 제거하고 yum downgrade -y openssl-libs-1.0.2k-16.el7를 추가하니까 빌드가 잘됩니다.. 이유는 레포지토리가 변경되면서 뭔가.. 그런거 같기도하고 잘모르겠네요 감사합니다.!
-
해결됨입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
질문있습니다!
여기서 experience를 모델에서 못찾아서??experience.startYearMonth 등 인식이 안되는것 같습니다.cannot resolve라고 뜹니다. 혹시 제가 컨트롤러라든지 DTO라든지 잘못적고 놓쳤나보다 하고 봤는데 왜 안되는지 못찾겠습니다. 한번 확인 가능할까요?컨트롤러서비스DTO 데이터 초기화 이렇게 타임리프 적용이 안될 떄는 어떻게 찾는게 좋은 방법일까요?
-
미해결비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)
jpa쿼리튜닝 팁이 궁금합니다.!
안녕하세요 강의 잘 듣고 있습니다!jpa를 사용해서 프로젝트를 진행하면 쿼리 메서드를 사용할텐데 select * <- 이걸로 넓은 범위를 조회할텐데jpql로 다 작성해주어야 하나요?jpa로 프로젝트 진행할때 팁이나 검색 키워드 추천해주세요!
-
미해결처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지] (업데이트)
Join 구문에서 메인 테이블
SELECT provider FROM items JOIN ranking on ranking.item_code = items.item_code 여기서 items 위치를 메인 테이블ranking 위치를 서브 테이블이라고 칭할게요! 메인테이블과 서브테이블을 어떤걸로 해야할지 항상 헷갈려요기본적으로 보고 싶은 컬럼인 provider가 원래 속한 테이블을 메인에 두려고는 하는데 예제 풀어주시는 걸 보면 아닌 경우도 있어서요! 어차피 테이블을 조인하는거니까 하나의 테이블이 되면 뭐가 메인이 되어도 상관이 없지않나 싶은데..메인 테이블 지정하는 기준이 있나요??
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
26강 update method 에러 발생합니다
선생님이 해주신것과 똑같이 코드를 작성했는데 도서관리에서 사용자 이름을 수정하려고 하니 updateUser에서 optional 관련 에러가 발생합니다. Hibernate: select user0_.id as id1_0_0_, user0_.age as age2_0_0_, user0_.name as name3_0_0_ from user user0_ where user0_.id=?2024-08-14 18:42:17.084 ERROR 37216 --- [nio-8080-exec-6] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalArgumentException] with root causejava.lang.IllegalArgumentException: null at java.base/java.util.Optional.orElseThrow(Optional.java:403) ~[na:na] at com.group.libraryapp.service.user.UserServiceV2.updateUser(UserServiceV2.java:34) ~[main/:na] at com.group.libraryapp.controller.user.UserController.updateUser(UserController.java:32) ~[main/:na]db도 한번 삭제 후 다시 실행했는데 같은 에러가 발생하네요.. 이유와 해결방법이 궁금합니다..!
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
도애체 어디에서 오류가 난건지 모르겠습니다.
다음과 같이 코드를 했는데 24강까지 애플리케이션에서 잘 삭제되고, 잘 저장되었는데 25강이후 코드는 실행되는데 '나이'가 입력을 해도 00세로 나오고, 목록에서 삭제하려고하면 '서버내부 오류입니다'라고 뜹니다.아래 질문에서 쉬운거는 편집된게 있다고 하는데배우는단계에 있는 사람으로써는 그렇게 편집되면 많이 당황스럽네요...ㅜㅜㅜㅜㅜ어디서 틀렸나요?ㅜㅜUserResponsepackage com.group.libraryapp.dto.user.response; import com.group.libraryapp.domain.user.User; public class UserResponse { private long id; private String name; private Integer age; public UserResponse(long id, String name, Integer age) { this.id = id; this.name = name; this.age = age; } public UserResponse(User user) { this.id = user.getId(); this.name = user.getName(); } public UserResponse(long id, User user) { this.id = id; this.name = user.getName(); this.age = user.getAge(); } public long getId() { return id; } public String getName() { return name; } public Integer getAge() { return age; } }Userpackage com.group.libraryapp.domain.user; import javax.persistence.*; @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id = null; @Column(nullable = false, length = 20, name = "name") private String name; private Integer age; protected User() { } public User(String name, Integer age) { if (name == null || name.isBlank()) { throw new IllegalArgumentException(String.format("잘못된 name(%s)이 들어왔습니다.",name)); } this.name = name; this.age = age; } public String getName() { return name; } public Integer getAge() { return age; } //User class public Long getId() { return id; } public void updateName(String name) { this.name = name; } }UserRepositorypackage com.group.libraryapp.domain.user; import org.springframework.data.jpa.repository.JpaRepository; public interface UserRepository extends JpaRepository<User, Long> { User findByName(String name); } UserControllerpackage com.group.libraryapp.controller.user; import com.group.libraryapp.dto.user.request.UserCreateRequest; import com.group.libraryapp.dto.user.request.UserUpdateRequest; import com.group.libraryapp.dto.user.response.UserResponse; import com.group.libraryapp.service.user.UserServiceV2; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController public class UserController { private final UserServiceV2 userServiceV2; public UserController(UserServiceV2 UserServiceV2) { this.userServiceV2 = UserServiceV2; } @PostMapping("/user") public void saveUser(@RequestBody UserCreateRequest request) { userServiceV2.saveUser(request); } @GetMapping("/user") public List<UserResponse> getUsers() { return userServiceV2.getUsers(); } @PutMapping("/user") public void updateUser (@RequestBody UserUpdateRequest request) { userServiceV2.updateUser(request); } @DeleteMapping("/user") public void deldteUser (@RequestParam String name) { userServiceV2.deleteUser(name); } } UserServiceV2package com.group.libraryapp.service.user; import com.group.libraryapp.domain.user.User; import com.group.libraryapp.domain.user.UserRepository; import com.group.libraryapp.dto.user.request.UserCreateRequest; import com.group.libraryapp.dto.user.request.UserUpdateRequest; import com.group.libraryapp.dto.user.response.UserResponse; import org.springframework.stereotype.Service; import java.util.List; import java.util.stream.Collectors; @Service public class UserServiceV2 { private final UserRepository userRepository; public UserServiceV2(UserRepository userRepository) { this.userRepository = userRepository; } public void saveUser(UserCreateRequest request) { User u = userRepository.save(new User(request.getName(), request.getAge())); //System.out.println(u.getId()); } public List<UserResponse> getUsers() { return userRepository.findAll().stream() .map(UserResponse::new) .collect(Collectors.toList()); } public void updateUser(UserUpdateRequest request) { User user = userRepository.findById(request.getId()) .orElseThrow(IllegalArgumentException::new); user.updateName((request.getName())); userRepository.save(user); } public void deleteUser(String name) { User user = userRepository.findByName(name); if (user == null) { throw new IllegalArgumentException(); } userRepository.delete(user); } } UserCreateRequestpackage com.group.libraryapp.dto.user.request; public class UserCreateRequest { private String name; private Integer age; public String getName() { return name; } public Integer getAge() { return age; } }
-
해결됨입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
문법질문입니다.
코드를 제가 잘 이해하고 따라가는지 궁금합니다.질문1리포지토리에서 활성화가 되어있는 프로젝트만 가져와서 projects에 리스트 형태로 넣어서 다시 ProjectDTO 형태로 넣어서 컨트롤러에서 처리하게끔 해주는건가요? 질문2여기서 제가 이해한게 맞다면 return 할떄 projects.map을 왜 이용하는건가요? map은 키와 값으로 이루어 져있는 배열로 알고있는데 ProjectDTO가 키와 값으로 이루어져서 그런건가요?질문3ProjectDTO(it) 여기서 말하는 it은 무엇을 의미하는지 알수있나요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
25강 findAll듣던중에
다음 첨부파일처럼 공유자께(첨부1)서는 public UserResponse(long id, User user) { }가 있습니다.그런데 저는 지금까지 쓴 코드에서 첨부파일(첨부2)처럼 저 코드부분이 없습니다.몇강에서 놓친건가요
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
25강 질문있습니다.
저장기능 변경에서 save를 하게 되면 저장된 User객체가 반환되는데 이때 id를 사용할 수도 있다.라고 했는데반환되는것이 User객체의 ID인건가요?그리고 꼭 반환 안하고 처음에 작성했던 public void saveUser(UserCreateRequest request) { userRepository.save(new User(request.getName(), request.getAge())); }이렇게 써도 되는건가요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
25강 질문있습니다
JpaRepository를 UserRepository가 상속받게 해줄때, 만든 테이블의 매핑 객체인 User 와 유저 테이블의 id인 Long 타입을 각각 적어주어야 한다고 하셨는데 user객체는 이해가 가는데 갑자기 id인 Long타입은 왜 적나요?
-
미해결처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지] (업데이트)
예제문제 추가 쿼리 질문
안녕하세요 공부하다가 쿼리에 추가해보고 싶은게 생겨서 질문드립니다!예2: 서브카테코리가 '여성신발'인 상품중 할인가격이 가장 높은 상품의 할인가격 가져오기이 문제에 정석 답변이라면 MAX(dis_price) 컬럼만 도출될텐데요! 앞에다가 해당 상품명 title을 추가해서 총 두 개의 컬럼이 나오게끔 만들어보려다가 막혀서 질문드립니다.원래는 99000짜리 하나만 나와야하는데밑에 쿼리로 하니까 여러개가 나와서요 ㅠㅠ 여러개가 나온 이유는 알거같아요 타이틀을 그룹바이해서 그 그룹별로 제일 높은 가격이 도출된 것 같은데 그건 제가 원하는 답은 아니어서요! 맥스 디스 프라이스를 가진 아이템코드의 타이틀을 어떻게 해야 효과적으로 도출할 수 있나요?SELECT title, MAX(dis_price) FROM items JOIN ranking on items.item_code = ranking.item_code WHERE sub_category = "여성신발" group by title;
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
14강. 유저 업데이트 API, 삭제 API 개발과 테스트 수정하기 안됨
코드대로 글을 잘 작성하고 POST,GET,DELETE도 전부 잘 동작하고 db에서도 확인이 되는데,수정하기만 동작하지 않습니다..어떻게 해야할까요..수정하기 버튼을 누를시 아무런 화면의 변화가 없습니다.
-
해결됨SQL 코딩테스트를 위한 첫 걸음
sql 코딩 테스트에서 index 생성 가능 여부
안녕하세요, 강의 감사합니다. leetcode 나 다른 코딩 테스트 플랫폼에서 응답시간을 짧게 하기 위해 create index 를 사용하는걸 지원하나요? 현재 leetcode 에서 create index 쪽이 계속 syntax error 가 나길래 혹시 막아둔건지 궁금합니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
섹션3 질문 있습니다
안녕하세요!섹션3 마지막 부분쯤 나온 @Component 어노테이션에 대해 질문이 있습니다!이 어노테이션은 다음과 같은 경우에 사용된다고 하셨는데요!컨트롤러, 서지스, 리포지토리가 모두 아니고,개발자가 직접 작성한 클래스를 스프링 빈으로 등록할 때 사용된다. 제가 궁금한 것은 Service 나 리포지토리 모두 우리가 직접 작성한 클래스 아닌가요??그러면 컴포넌트 어노테이션 아닌가요??답변해주시면 감사하겠습니다
-
미해결장래쌤과 함께하는 쉽고 재미있는 SQL 이야기
주차별 데이터에서 전 주 데이터 가져오기
안녕하세요, 질문드립니다! week. date. 값31 2024-08-02 A31 2024-08-03 A32 2024-08-07 B32 2024-08-08 C 위와 같이 주차별로 쌓여있는 테이블에서 현재 주차가 32주차라고 가정하면32주차의 값을 가져오는게 아니라 저번주 차의 값을 가져오고싶습니다. 원래 대로라면 32주차 (B 값 1개) 가 분모가 되겠지만31주차 (A 값 2개) 로 가져오고 싶습니다ㅠ 방법이 있을까요
-
미해결입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
섹션3 컨트롤러테스트 오류
안녕하세요. 강의노트와 강의를 보면서 수정해 보았는데 resume에서만 test가 실패합니다. 제가 보기엔 resume가 JSON이 null이라서 그런것 같은데 어느 부분을 봐야할지 모르겠습니다. Datainitiallizer.kt를 봐도 잘 안보이네요. 아래는 에러 메세지와 코드입니다.java.lang.NullPointerException: Cannot invoke "org.json.JSONArray.length()" because the return value of "org.json.JSONObject.optJSONArray(String)" is null at com.dogu.portfolio.presentation.controller.PresentationApiControllerTest.testGetResume(PresentationApiControllerTest.kt:66) at java.base/java.lang.reflect.Method.invoke(Method.java:569) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) @Test @DisplayName("resume") fun testGetResume() { //given val uri = "/api/v1/resume" //when val mvcResult = performGet(uri) val contentAsString = mvcResult.response.getContentAsString(StandardCharsets.UTF_8) val jsonObject = JSONObject(contentAsString) //then Assertions.assertThat(jsonObject.optJSONArray("experiences").length()).isPositive() Assertions.assertThat(jsonObject.optJSONArray("achievements").length()).isPositive() Assertions.assertThat(jsonObject.optJSONArray("skills").length()).isPositive() }
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
26강 오류입니다 !
Execution failed for task ':LibraryAppApplication.main()'.> Process 'command 'C:/Program Files/Java/jdk-11/bin/java.exe'' finished with non-zero exit value 1 이것은 어떤 에러일까요 ㅠㅠ
-
해결됨인프라공방 - 그럴듯한 서비스 만들기
aws 비용관련 문의
학습을 진행하다보니 aws에서 비용청구가 계속해서 진행되고있는데요. ㅠㅠec2의 비용청구를 중지하려면 인스턴스만 끄면 해결이 되는 문제일까요? 아니면 설정했던 모든 부분에 대한 삭제가 진행되어야 할까요?
-
해결됨Real MySQL 시즌 1 - Part 1
char vs varchar 타입에 궁금한 점이 있습니다.
varchar 타입의 경우 데이터 업데이트시 파편화가 생길 수 있다는 점을 이해했습니다! 다만, char 타입을 쓰면 좋은 경우가 문자열의 길이가 가변성이 크지 않은 경우라고 한다면varchar의 경우에도 길이 가변성이 크지 않은 탓에 처음부터 선언해둔 길이를 벗어나지 않을 가능성이 클 거 같다는 생각이 들었습니다. 만약 주민등록번호라고 한다면 13자리니까char(13)로 하거나 varchar(13)해도 이 자리수를 넘어가지 않을 것이고자주 업데이트 되는 경우라고 해도 char도 그렇고 varchar도 그렇고 길이수만 잘 잡아놓으면fragmenation 문제가 없는 것이 아닌지 궁금합니다. 그럼에도 char를 쓰는 것이 더 좋은 이유가 있을지 궁금해서 질문남깁니다!
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
19강 질문
1. 유저 컨트롤러에서 jdbc를 설정해준적이 없다고 하셨는데 여기서 jdbc클래스설정 이라는게 무슨말인가요?jdbc에 대한 생성자를 말하는건가오?생성자를 설정안해 줘서 탬플릿을 설정안해준거라면 userservice나 userRepositry 모두 다 템플릿에 대해 설정 안해줬는데 저 둘은 스프링빈도 아닌데 어떻게 jdbc템플릿 가져온건가요