깃에 공부한거 정리하며 올리는중인데
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
어떤식으로 출처를 남기면 좋을까요??
- java
- spring
- aws
- mysql
- spring-boot
- jpa
173만명의 커뮤니티!! 함께 토론해봐요.
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
어떤식으로 출처를 남기면 좋을까요??
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
임녕하세여 질문잇습니다 쌤이 밀하시길 단방향으로 설계를 하는게 좋다고랫는데 주문 과 주문아이템은 양방향으로 하신이유가잇을까요??
자바 ORM 표준 JPA 프로그래밍 - 기본편
안녕하세요 연관관계 방향대해서 여쭤볼게잇어서 질문합니다 상품이랑 리뷰 상품이랑 카테고리 방향에 대해서 질문잇습니다 Item <- review : 1:n 단방향 Item -> itemCategory -> category 1:n n:1 이 단방향이 맞을까요?? 구현하다가 양방향으로 변경해야할까요 아니면 단방향으오 해결될까요??
Practical Testing: 실용적인 테스트 가이드
강사님의 훌륭한 강의를 듣고 현재 진행하고 있는 프로젝트에 테스트 코드를 작성하려고 합니다. 프로젝트 크기는 크지만(개인적인 생각) 아직 테스트 코드는 작성하지 않았고, 해당 프로젝트는 계층형 아키텍처로 이루어져있습니다. 개인적으로 테스트 코드는 유효성 검사를 하는 Presentation Layer보다는 Domain Layer와 같이 중요하고 복잡한 로직이 있는 곳에 더 필요하다고 생각합니다. 그래서 테스트 코드를 작성하는 것도 비용이라고 생각해서 우선은 도메인 로직과 관련된 테스트 코드를 작성하고 컨트롤러와 같이 적은 역할을 하는 곳에 테스트 코드를 차례대로 작성하려고 합니다. 테스트 코드를 작성한 경험이 없어서 부족한 점이 많은데 이렇게 테스트 코드를 프로젝트에 도입하는게 맞을까요? 강사님의 의견이 궁금합니다! 그리고 실무에서도 프로덕션 코드에 맞는 테스트 코드를 모두 작성하시는지 아니면 필요하다고 생각하는 곳에만 작성하시는지도 궁금합니다.
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
제가 현재 코딩테스트를 준비할 수 있는 시간이 한달뿐입니다. 구현이랑 BFS DFS만 준비하고 1~2문제만 맞춘다는 전략은 어떤가요? 임베디드쪽이라 코테에 대한 의존도는 많이 낮은 편입니다.
스프링 DB 2편 - 데이터 접근 활용 기술
하나 여쭤보고 싶은게 있는데, 기존에 NestJS를 사용하다가 Spring으로 전향하게 되어, NestJS로 작성된 토이 프로젝트를 Spring으로 변환하면서 강의 내용을 체득해보려고 합니다! 토이 프로젝트의 규모도 꽤 크고, 기존에 GraphQL로 작성된 쿼리들을 REST API로 변경할 계획인지라 사실상 새로 제작한다에 가까울 것 같습니다. 이걸 어떤 강의까지 들은 뒤 작업할 지 고민이 되는데, 혹시 조언을 주실 수 있을까요? 1. DB 2편 2. 스프링 완전 정복 로드맵 3. DB 2편까지 듣고, JPA 실무 완전 정복 로드맵까지 4. 스프링 완전 정복 로드맵과 JPA 실무 완전 정복 로드맵까지 현재 DB 2편 듣고 있는 중이며, 이 강의를 듣기 전엔 Spring에 대한 기반 지식이 아예 없었던 상태입니다. 조언 감사합니다!
2주만에 통과하는 알고리즘 코딩테스트 (2024년)
안녕하세요! 이제 막 코테를 준비하는 학생입니다! 완전탐색 부분을 영상으로 보고있는데, 약15~20분 정도 고민해봐도 접근법이 떠오르지 않으면 솔루션을 확인해봐도 괜찮을까요? 접근법이 도저히 떠오르지 않아 속상합니다 ㅠㅠ
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
?
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
큰돌님. 이거 비밀글이 맞는지는 모르겠습니다. 최근에 7대 IT회사 중 경력직 머신러닝엔지니어 코딩테스트를 봤는데요. 문제들이 하나같이 곧바로 유형만가지고 풀 수 있는 것은 없고 정말 그때그때 사례에 맞춰서 새로운 고민을 해야하는 유형이 두 세 가지가 한 문제에 들어있었어요. 세 문제 중에 두 문제는 어찌어찌 풀었지만 채점이 없어서 예외처리 실패한 것도 있었고, 한 문제는 제대로 손도 못댔거든요. 제가 아직 공부가 부족해서 그렇게 느껴지는 것일 수도 있지만 7시간의 시험을 보고 나서의 느낌은, 이렇게 어렵다면 내가 아무리 공부해도 안되지 않을까..? 애초에 코딩 천재들만이 되는 것일까? 하는 생각이 들었습니다. 이럴 때 어떻게 해야할지.. 고민이 됩니다. (경력직이라서 사실 부담없이 생각했고 실버정도로 짐작했었는데 큰 오판이었어요. 저는 현재 파이썬으로만 개발&머신러닝을 했고 4년 경력입니다..큰돌강의는 2달째로 현재 6주차 하고 있습니다.) 물론, 제가 아직 완전히 모의고사까지 다 잘 풀 수 있는 수준이 되기 전에 조금 일찍? 코딩 테스트를 본 것도 있지만 그 정도 수준의 문제라면 어쩌면 제가 공부를 다 해도 못 풀지도 모른다는 걱정이 들어서 이렇게 고민을 상담합니다... (문제 중에서는 유저들의 이메일과 아이디에 오타나 부계정으로 판단되는 것들을 Levenstein 편집거리를 응용해서(그것인지 이해해야만 알 수 있는.. replace부분만 빼기) 다시 짜야 하는 그런 스타일이었고, 그 이후에도 겹치는 유저들을 제거하고 최종적으로 unique한 유저의 숫자를 return 하는 문제가 그나마 풀만한 거 였습니다..) 그 외에도 preorder traversal이 유효한지 아닌지를 판단하는 문제 등 제 수준에서는 골드 2~3이상으로 느껴지는 어려운 문제 2개가 더 있었어요.) 어떻게 준비해야할지 고민이 되서 도와주세요. (단문 위주의 백준 스타일로만 준비 해도 될지. 제가 이렇게 좌절하는게 당연한건지, 프로그래머스 같은 장문 문제를 보고 유형이 보이지 않는 문제 등등)
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
강의를 보던 중 궁금한게 생겨 질문을 남깁니다...! 처음으로 코테 공부를 시작하였는데 현업에서 사용하던 버릇이 있어서 자꾸 자동완성과 라이브러리를 최대한 활용하여 문제를 풀려고 하더라구요 혹시 이러한 습관이 코테 공부에 방해가 될지 궁금합니다.
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요! 현재 파이썬은 문법만 어느정도하고 c언어도 파이썬 만큼은 아니어도 포인터에 대한 이해를 한 소프트웨어학과 2학년 재학중인 학생입니다. 길을잡지 못하고 방황하고있습니다...ㅜㅜ 백엔드, 프론트엔드, iOS 등 할거를 찾으면서 Java도 문법을 조금 해보고 Swift도 조금 해보면서 어떤 분야가 나한테 맞을까 하면서 분야를 찾고있는데 결국 찾지 못했습니다...ㅜㅜ 사실 Mac을 사용중이여서 iOS를 해볼까 했었습니다. 그런데 Native앱들이 요즘 시장이 점점 하이브리드 시장에 먹히면서 수요가 점점 줄기도 하고 Web기술도 계속 발전을 하면서 Web뷰를 이용한 앱들 또한 성장을 해서 네이티브앱 개발자들의 자리가 점점 줄어든다고 해서 분야를 선택하고 있지 못하는 상황입니다. 혹시 큰돌님께서는 개발자 분야를 선택하실 때 참고하신게 있나요? 현재 여름방학동안 분야 선택을 하면서 이것저것 찍먹만하고 이렇다할 성과를 거둔것이 없어서 너무 고민입니다... 그래서 뭐라도 해보자는 생각으로 코딩 테스트 준비라도 하려고 구입을 했습니다. 그런데 큰돌님 유튜브 영상에서는 프로젝트를 하나 할정도의 실력을 갖추고 cs공부를 어느정도 한 상황에서 알고리즘을 학습하라고 하셨는데 이 강의를 나중에 (만약에 백엔드 분야를 선택했을 경우) 백엔드를 어느정도 숙련될 정도로 학습을 하고 듣는 것이 좋을까요?
자바 ORM 표준 JPA 프로그래밍 - 기본편
주인을 선정할때 "외래키가 있는 곳을 주인으로 정해라" 라고 설명이 되어있는데 RDB 를 많이 다뤄봤다면 당연한 개념입니다. 이런 개념으로 ERD 설계를 많이 하기는 합니다.(정규식, 비정규식 등의 개념은 있지만, 이 부분은 논외로 하구요~) 쿼리 작성시 이 부분이 헷갈리면 join 할때마다 고민이 많아지기는 합니다. 양방향이다 보니 아무렇게나 join 하면 되기 때문입니다. 하지만 쿼리 조인은 반드시 주인을 정해놓고 하다보면 틀이 잡히기 시작하고 inner/left/outer join 등의 개념도 아주 명확해지기는 합니다. 저는 이 강의를 보고 이 부분이 어렵다, 이해하기 힘들다고 하셨는데, 전혀 헷갈리거나 힘들지 않았습니다. 왜냐하면 이미 10년이상 RDB 쿼리 작성시 이런 개념으로 하다보니 그냥 당연하게 받아들여졌습니다. 단지, 객체지향(OOP)에서 이 부분을 어떻게 설계하고 문법을 정했는지가 궁금했습니다. 저도 EF(Entity Framework) 하다가 JPA를 공부중인데... 거의 같은 개념이고 받아들이기 쉽네요. 이 개념이 계속 어렵다면 RDB join 에 대해서 조금 깊이있게 연습해보시면 이해하는데 많은 도움이 될 것 같습니다.
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
하반기 공채 생각중인데, 현재 JS로 어느정도 준비한 상태인데, c++을 새로 익혀서 하는게 좋을까요?? 괜히 c++로 코테 언어 바꿨다가 헷갈릴 것 같아서요.. 준비할 것도 많고 맘이 조급한데 c++ 괜히 시도했다가 시간낭비 될 것 같다는 생각이 들어요
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
#include <bits/stdc++.h> using namespace std; int ret, n; struct Board{ int a[24][24]; void _rotate90(){ int temp[24][24]; for(int i=0; i<n; i++){ for(int j=0; j<n; j++){ temp[i][j] = a[n-j-1][i]; } } memcpy(a,temp,sizeof(a)); } void _move(){ int temp[24][24]; for(int i=0; i<n; i++){ int c = -1; int d = 0; for(int j=0; j<n; j++){ if(a[i][j] == 0) continue; if(d && a[i][j] == temp[i][c]) { // c가 -1이어도 인덱스아웃이 안나네..? temp[i][c] *= 2; d = 0; }else{ temp[i][++c] = a[i][j]; d = 1; } } for(c++; c<n; c++) temp[i][c] = 0; } memcpy(a,temp,sizeof(a)); } void get_max(){ for(int i=0; i<n; i++){ for(int j=0; j<n; j++){ ret = max(ret, a[i][j]); } } } }; void go(Board c, int here){ if(here == 5){ c.get_max(); return; } for(int i=0; i<4; i++){ Board d = c; d._move(); go(d, here+1); c._rotate90(); } return; } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n; Board c; for(int i=0; i<n; i++){ for(int j=0; j<n; j++){ cin >> c.a[i][j]; } } go(c,0); cout << ret << "\n"; return 0; } 위의 코드는 강의내용과 같은 코드입니다. 강사님의 코드에서 move함수에 사용했을때 처음 c가 -1이면 if(d && a[i][j] == temp[i][c]) 이 가정문에서 temp[i][-1]이런경우가 되서 인덱스오류가 발생할거라 생각했는데 문제없이 넘어가는데 왜 그런건지 이해시켜주실 수 있을까요?
스프링 DB 2편 - 데이터 접근 활용 기술
커뮤니티에서 Mybatis 관련 비슷한 오류가 많아 보이길레, 여러분들의 시간을 아껴드리고자 제가 해결한 방법을 공유해드립니다. Mapper bean not found 저의 경우 Spring Boot 버전과 MyBatis 버전 불일치 문제여서 Mapper 빈 생성이 정상 작동하지 않았었습니다. (Mapper Spring 연동 모듈이 정상 작동하지 않은 문제??) // build.gradle plugins { id 'org.springframework.boot' version '2.6.5' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } 스프링 부트 3.0 이상 버전만 썼기 때문에 습관상 당연히 3.0 버전과 호환이 되는 MyBatis 버전 3.0.1 을 설정했지만 위와 같이 영한님의 수업 자료로 진행하셨다면 스프링 2.6.5 로 설정되어 있기 때문에 // build.gradle dependencies { //MyBatis 추가 implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0' } 이렇게 바꾸시면 되실 겁니다! Invalid boud statement (not found) XML 파일에 오타가 있거나 XML 파일 경로 설정이 이상할 경우 발생하는 오류라 합니다 ItemMapper.xml 파일 경로를 잘 따라한 것 같엤는데 경로가 복잡하기도 했고 그래서 pdf 수업 자료 2번째 방법인 resources/mapper/ItemMapper.xml 로 xml 파일을 옮겼고 (기존 껀 부모 디렉토리까지 삭제) // application.properties #MyBatis mybatis.type-aliases-package=hello.itemservice.domain mybatis.configuration.map-underscore-to-camel-case=true logging.level.hello.itemservice.repository.mybatis=trace mybatis.mapper-locations=classpath:mapper/**/*.xml 설정 파일에 마지막 줄 (mapper 경로 설정) 을 추가해서 해결했습니다. 저와 동일한 문제가 아니신 분들도 계시겠지만 같은 수업 자료에서 출발했기 때문에 비슷하게 해결되지 않을까 싶어서 글 적었습니다! (질문글이 아니지만)
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
안녕하세요 강사님 ! spring boot를 사용해서 프로젝트를 만든 경험은 있지만 주변 실무자들이 제가 구현한 방식이 올드한 편이라는 피드백을 받고 강사님 spring 기본편과 jpa 해당 강의를 수강하고 있는 학생입니다 ! 저는 보통 냅다(?) 코드를 치면서 전체적인 흐름을 공부한 뒤 이해가 안 가는 부분을 찾아보는 편이라 스프링 강의를 순차적으로 다 듣는 대신 jpa 강의를 먼저 수강 중인데요. 해당 강의를 다 수강한 뒤에 jpa를 활용한 spring 프로젝트 강의를 듣고 난 후 해당 강의를 다시 보고 이 다음 jpa활용 2편을 들으려 합니다. spring 로드맵에서 어떤 강의를 듣는게 좋을지 추천해주실 수 있을까요 ?
실전! Querydsl
// 1. queryDsl version 정보 추가 buildscript { ext { queryDslVersion = "5.0.0" } } plugins { id 'org.springframework.boot' version '2.6.3' id 'io.spring.dependency-management' version '1.0.11.RELEASE' // 2. querydsl plugins 추가 id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" id 'java' } //... dependencies { // 3. querydsl dependencies 추가 implementation "com.querydsl:querydsl-jpa:${queryDslVersion}" implementation "com.querydsl:querydsl-apt:${queryDslVersion}" //... } test { useJUnitPlatform() } /* * queryDSL 설정 추가 */ // querydsl에서 사용할 경로 설정 def querydslDir = "$buildDir/generated/querydsl" // JPA 사용 여부와 사용할 경로를 설정 querydsl { jpa = true querydslSourcesDir = querydslDir } // build 시 사용할 sourceSet 추가 sourceSets { main.java.srcDir querydslDir } // querydsl 컴파일시 사용할 옵션 설정 compileQuerydsl{ options.annotationProcessorPath = configurations.querydsl } // querydsl 이 compileClassPath 를 상속하도록 설정 configurations { compileOnly { extendsFrom annotationProcessor } querydsl.extendsFrom compileClasspath } 다른 분께서도 내용 공유를 해주셨습니다만, 저같은 경우에는 영한님 강의와 똑같은 경로로 Q클래스 생성하면서 진행하고 싶어 방법을 찾아보다가 다음 설정을 찾았습니다. 출처 : https://data-make.tistory.com/728 저같은 경우 문제는 다음과 같았습니다. compileQuerydsl 로 Q클래스 생성 후, 테스트 코드를 돌리면 java: Attempt to recreate a file for type study.querydsl.entity.QHello 에러 발생 generated 폴더를 삭제 후, 테스트 코드를 돌리면 성공. 위 상황에서 테스트 코드를 Run 하기 전에 항상 Q 클래스를 만들려고 시도한다는걸 알게되서 build.gradle 마지막에 기존에 Q 클래스가 있다면 삭제하고 진행하라고 코드를 넣어도 똑같은 현상이 반복됐었습니다. 이 후 검색을 하다가 위의 설정을 알게됐습니다. compileQuerydsl 로 Q 클래스 생성 후, 테스트 코드를 돌려도 잘작동합니다. 만약 영한님하고 같은 화면, 흐름으로 강의를 진행하시고 싶은 분들 있으시면 참고하시면 좋을것 같아요. 다들 화이팅입니다.
it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
강의 자료를 다운로드 하려는데 크롬에서 위험한 자료라고 계속 거부당하는데 어떻게 다운 받으셨나요 다들??
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
현재 1주차를 막 끝내가려고 합니다 아직은 백준기준 브론즈~실버 수준의 문제라 크게 복잡한부분은 없어 먼저 풀어보고 풀수있는 이론이 생각 나지않을때 큰돌님의 이론설명과 참고코드를 참고하여 핵심적인 부분을 체크하여 문제를 풀어보고 있습니다 알고리즘 메인적인 구현로직은 같아도 세부구현이나 로직의 재현이 제가생각한것과 참고코드가 다른부분이 있을때에 큰돌님의 참고코드를 기반으로 다시한번 풀어보는게좋을까요? 다풀어본문제도 참고코드를 확인하면서 다시한번 큰돌님의 강의방식대로 풀어보는게 더 좋을지 궁금합니다 감사합니다.
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요 선생님! 이번에 선생님 코딩테스트를 완강하고 교안, 개념, 한번에 풀지 못했던 문제, 햇갈리는 문제를 하루에 조금씩 다시보면서 이 감을 유지하는 식으로 공부를 이어나가고 있습니다. 하나의 강의를 끝내니까 뭔가 기분이 좋아서 내친김에 선생님 CS책도 구매해서 열독했는데요! 이 강의와 관련있는 질문은 아니지만 궁금한 점이 생겨 질문드립니다. 일단 제 목표는 대기업에 합격하는 방법 영상을 보고 이에 맞춰서 하나하나 따라가는 중입니다. 또 백엔드 개발자를 희망중입니다. 궁금한 점은 이 CS책만으로도 혹시 충분할까요? 아니면 추가로 인터넷에서 더 찾아보면서 공부해야할까요? 하루 30분만 공부하라고 하셨는데 음... 제 머리에 도저히 잘 안외워집니다ㅠㅠ 선생님이 말씀하셨던 것처럼 예를 들어 디자인 패턴 중에 팩토리 패턴은 뭐죠?! 라고 물어보면 술술 안나올 것 같은데... 아예 완전히 외울때까지 계속 보면서 넘어가야할까요? 아니면 한번은 그냥 슥보고 그 다음부터 아예 완전히 습득할 때까지 보는게 나을까요?! 비전공자라 CS가 많이 부족한데 이 강의로 자료구조, 알고리즘 부분도 많이 채우고 책 덕분에 한시름 덜은 것 같습니다 감사합니다!