안녕하세요 선생님 :)
나도코딩의 자바 기본편 - 풀코스 (20시간)
삭제된 글입니다
- java
- 객체지향
173만명의 커뮤니티!! 함께 토론해봐요.
나도코딩의 자바 기본편 - 풀코스 (20시간)
삭제된 글입니다
게임 클라이언트 개발자를 희망하는 sw학과 대학생입니다. 단순히 전공 수업 선택때문에 고민인데요. 이번에 통신(tcp/ip 이론) 수업이랑 리눅스 수업이 개설되었더라고요. 통신은 소켓 프로그래밍 없이 이론만 배워서 아쉽긴 하지만 그래도 cs과목이기도 하고 게임 클라 개발할 때 도움이 있을거라고 들었거든요. 근데 리눅스는 서버쪽이라 수강할지말지 고민되더라고요.. (학기말에 팀플때문이기도 하고 이 수업 안 들으면 고학년이라 다른 전공 프로젝트에 몰입할 수 있어서요.. 선택과집중) 운영체제 수업때나 군대 전산병, 정처기 준비하면서 명령어까지는 써봤었는데 그 이상으로 전공수업으로 좀 더 체계적으로 배우면 게임 클라쪽에 도움이 될지 잘 모르겠네요 학부때 다양하게 듣는게 좋다지만 상황이 여의치 않아서.. 듣고는 싶은데 크게 진로에 도움이 되지 않는다면 선택과 집중으로 과감히 포기할지 아니면 그래도 배울 수 있을 때 배우는게 좋을지 고민입니다.
실전! Querydsl
QueryDSL 내부 메소드 중 fetchResult() 나 fetchCount()는 만료된 메소드에 대해서는 QueryDSL에서 Blaze-persistence Integration 라이브러리 사용을 권장 하는데요, Blaze-persistence도 QueryDSL 처럼 쿼리 빌더 API 로서 개발자에게 유지보수하기 좋은 객체를 제공해주고 있습니다. 게다가 최신 업데이트 날짜가 글 작성일 기준(2023.06.21) 일주일 이전이라 여전히 유지보수되고 있어서 최신 스프링버전과 호환성도 어느정도 보장되었다고 볼 수 있습니다. 개인적으로 SpringBoot 3.1.0 기준으로 다음과 같이 세팅하니 정상적으로 동작하는 걸 확인했는데요, 혹시 저처럼 deprecated 메소드를 쓰는 것이 신경쓰이시는 분들을 위해 공유드립니다. build.gradle dependencies { //Blaze-Persistence implementation 'com.blazebit:blaze-persistence-integration-querydsl-expressions-jakarta:1.6.9' implementation 'com.blazebit:blaze-persistence-integration-hibernate-6.2:1.6.9' implementation 'com.blazebit:blaze-persistence-core-impl-jakarta:1.6.9' } BlazePersistenceConfiguration.java @Configuration public class BlazePersistenceConfiguration { @PersistenceUnit private EntityManagerFactory entityManagerFactory; @Bean @Scope(ConfigurableBeanFactory.SCOPE_SINGLETON) @Lazy(false) public CriteriaBuilderFactory createCriteriaBuilderFactory() { CriteriaBuilderConfiguration config = Criteria.getDefault(); // do some configuration return config.createCriteriaBuilderFactory(entityManagerFactory); } } QuerydslBasicTest.java ..... JPAQueryFactory queryFactory; @Autowired CriteriaBuilderFactory cbf; BlazeJPAQueryFactory blazeQueryFactory; @BeforeEach public void testEntity(){ queryFactory = new JPAQueryFactory(em); // 이건 동시성 문제를 고민하지 않아도 됨, 해결됨 blazeQueryFactory = new BlazeJPAQueryFactory(em, cbf); ..... 적용 결과 기존 QueryDSL 세팅한 것에 추가로 세팅하시면, 만료된 메소드에 대해 Blaze-persistence 객체로 대체되는데요, 기존 querydsl 클래스를 상속 받는 형태여서 QueryDSL이 제공하는 메소드를 그대로 쓸 수도 있습니다. fetchResults는 fetchPage로 바꿔서 사용할 것을 권장하고 있다는 점 참고하시면 될 것 같습니다. 추가로 내부로직이라든지 설명이 더 필요하시다면 Blaze-persistence 릴리즈 노트 와 Blaze Persistence Document 를 참고하시면 좋을 것 같습니다. 이 글에 대해 지적 및 피드백 해주시면 정말 감사하겠습니다. 감사합니다. 여담 및 고민 : 개인적으로 이 라이브러리의 내부로직을 뜯어보면서 분석하고 검증할 수 있는 역량은 부족한지라 분석 및 검증하는 방법에 대해서 팁이라든지, 아니면 blaze-persistence 사용할 시 주의해야할 점이라든지 조언해주실 수 있으시면 정말 감사드립니다. 강의를 듣던 중에 서브쿼리가 발생하는 부분에서는 정상동작하지 않는 것을 발견했습니다. @Test public void findUserDto(){ QMember memberSub = new QMember("memberSub"); List<UserDto> memberDtoList = queryFactory //이건 blazeQueryFactory가 정상 동작하지 않음 .select(Projections.fields(UserDto.class, //생성자 필드 순서에 맞게 변수를 만들어야 한다. member.username.as("name"), // member.age 대신 서브쿼리로 다 최대 나이로 찍고 싶어 ExpressionUtils.as( JPAExpressions .select(memberSub.age.max()) .from(memberSub), "age") )) .from(member) .fetch(); for (UserDto userDto : memberDtoList) { System.out.println("userDto = " + userDto); } } QueryDSL 쿼리 /* select member1.username as name, (select max(memberSub.age) from Member memberSub) as age from Member member1 */ select m1_0.username, (select max(m2_0.age) from member m2_0) from member m1_0 blaze-persistence 쿼리 /* SELECT member1.username AS name, member1.age AS generatedSubquery_1 FROM Member member1 */ select m1_0.username, m1_0.age from member m1_0 blaze-persistence generatedSubquery라 하여, 서브쿼리를 하나의 alias로 처리를 해버렸는데, 후행으로 이 generatedSubquery 에 대한 정의가 따라오질 않습니다... 왜 이런 차이가 나오는지는 모르겠지만 blaze-persistence 활용할 때는 유의해야할 것 같습니다.
프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
안녕하세요! 조금 뜬금 없는 질문이기는 한데 궁금해서요 왜 for 문을 반복문이라고 하나요? 그러니까 어떤 의미에서의 반복인가요? apple 를 a p p l e 이렇게 5줄로 따로따로 가져오는 게 반복인가요?
자바 ORM 표준 JPA 프로그래밍 - 기본편
https://xively.tistory.com/43
[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
selenium 실력 업그레이드 ② - 네이버 지도 크롤링/검색어 입력구현 이곳 수업은 아마 혼자했다면 포기했었을 것 같습니다. 아무리해도 search = browser.find_element(By.CSS_SELECTOR, 'input.input_search') 이것부터 인식을 안해서 왜 안되나 찾고 찾아도 알 수가 없었습니다. time어쩌고 언급이 된 것 같았지만 그것을 읽을 때는 심각하게 생각하지 않고 지나쳐 버려서... 포기하고 수업을 들으니 특별한 것이 있을 줄 알았는데... # 검색창 찾아서 입력 search = browser.find_element(By.CSS_SELECTOR, 'input.input_search') search.click() time.sleep(1) # 이것을 안해줘서 인식을 못했음, 사람처럼 인식하도록 함 search.send_keys("강남역 맛집") time.sleep(1) search.send_keys(Keys.ENTER) time.sleep(2) # 3개의 명령어가 순식간에 일어나면 네이버지도는 사람이 아니다라고 인식 별것 아닌 것 같은 time.sleep(1) 이것이 해결책이었네요. 이 수업하나로 수업료낸 값어치가 있는 것 같습니다. .
파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
삭제된 글입니다
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
현재 국비 학원을 수료하며 프로젝트를 마친 뒤에 김영한님 강의를 듣고 있으며 spring에 대해 이제서야 이해하려 하는 취준생입니다. 문득 제가 어떤 개발을 하고 싶은지 방향성에 대해 생각해보게 되었습니다. ->어떤 개발을 하고 싶은지 방향성에 대해 되짚어 보고 있었다 ->SQL문을 짜면서 효율적인 방법은 무엇이 있을까 고민하는 과정이 스스로 가치 있는 고민을 하고 있다는 생각이 들었다. ->데이터 처리 속도 개선에 관하여 고민하는 개발자가 되고 싶다. ->대용량 트래픽을 다루는 서비스 회사에서 성장하고 싶다. 질문 ==> 위의 4문장을 설득력 있게 말하기 위해서 취준에 뛰어드는 예비 백엔드 개발자 수준에서 할 수 있는 "공부 방향"은 무엇이 있을지 조언 해주실 수 있을까요? (특정 개념이나 강의를 추천해주셔도 감사할 것 같습니다. )
파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
선생님 안녕하세요. 강의 듣고있는 수강생 입니다. 다름이 아니라 파이썬 프로젝트하면 포트폴리오로 활용하기에도 실용적으로 쓰기에도 불필요한 너무 작은 단위의 게임, 메모앱을 만든다든지 기껏해야 블로그만들기만 잔뜩 있는것 같습니다. 어쩌다가 인스타그램 만들기가 있구요. 혹시 파이썬 장고를 활용한 쇼핑몰 만들기 강의 개설에 대해서 계획이 있으신가요?
실전! Querydsl
plugins { id 'org.springframework.boot' version '2.7.4' id 'io.spring.dependency-management' version '1.0.14.RELEASE' id 'java' } group = 'study' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' // queryDSL 설정 implementation "com.querydsl:querydsl-jpa" implementation "com.querydsl:querydsl-core" implementation "com.querydsl:querydsl-collections" annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa" // querydsl JPAAnnotationProcessor 사용 지정 annotationProcessor "jakarta.annotation:jakarta.annotation-api" // java.lang.NoClassDefFoundError (javax.annotation.Generated) 대응 코드 annotationProcessor "jakarta.persistence:jakarta.persistence-api" // java.lang.NoClassDefFoundError (javax.annotation.Entity) 대응 코드 } tasks.named('test') { useJUnitPlatform() } // Querydsl 설정부 def generated = 'src/main/generated' // querydsl QClass 파일 생성 위치를 지정 tasks.withType(JavaCompile) { options.getGeneratedSourceOutputDirectory().set(file(generated)) } // java source set 에 querydsl QClass 위치 추가 sourceSets { main.java.srcDirs += [ generated ] } // gradle clean 시에 QClass 디렉토리 삭제 clean { delete file(generated) } 해당 소스는 타사 강의 보다가 본 설정에서 가져왔습니다. 기존 영한님 강의와 다른 점이 3가지 있으니 주의하시기 바랍니다. Querydsl Q파일 생성 위치가 다릅니다. 기존 영한님 강의대로 $build 로 시작하는 설정을 사용하면 테스트 실행 시 Q파일의 위치를 찾지 못해서 테스트가 실패합니다. Gradle -> Tasks -> build -> clean Gradle -> Tasks -> build -> build 혹은 classes 기존 영한님 교안에는 빌드 시 Gradle -> Tasks -> other -> compileQuerydsl 로 Q파일을 생성하지만, 이 방법의 경우 other에 해당 메뉴가 없습니다. 그래서 빌드 시에는 그냥 build 메뉴의 build 혹은 classes 로 빌드하시면 Q파일이 생깁니다. 영한님 강의에서는 gradle build 폴더가 대부분 git 버전관리에 포함되지 않으므로 따로 설정할 필요가 없지만, 이 경우 Q파일이 소스폴더에 들어가므로 .gitignore 에 아래와 같이 별도로 경로를 설정해 주어야 합니다. ### Querydsl /src/main/generated 혹시 저같이 청개구리마냥 강의에 나온 버전 사용 안 하고 최신 버전 사용하시는 분들께 도움이 되었으면 좋겠습니다. 저도 타사 강의에서 가져온 것이고 기초 테스트만 통과한 것이라서 혹시 강의에 맞지 않는 경우 영한님이나 다른 분들이 추가 정보를 주시면 좋을 것 같습니다. 여담인데 QueryDSL은 쿼리 짜긴 확실히 편한데 설정이 버전마다 중구난방이라 불편합니다. 똑똑한 개발자분들이 이런 설정도 그냥 @Configuration 으로 빼버리는 거 만들어주지 않을까 하는 기대가 있긴 합니다.
설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
해당 강의를 진행하면서 '/usr/bin/env: ‘python’: No such file or directory' 에러가 뜨시는 분들이 있을 것 같아서 혹시나 해서 작성해봅니다! 아래 사진처럼 해결하시면 될 것 같습니다~ 복사: sudo apt install python-is-python3
저는 일단 정보통신공학 2학년인데 소프트 커리를 타려고 생각중이에요 2학기에 C++ 자료구조론을 배우는데 여론으로는 C++은 게임 개발이나 인공지능? 쪽에서 많이 쓰인다고 하고 제가 생각하는 프론트/백엔드의 웹 개발자는 java나 python이 주 프로그래밍 언어이고 IT기업 쪽에서도 java를 활용한 툴(Spring 등)을 선호하고 있다고 들어서 C++은 학점 챙기는 용으로 공부하고 진로를 위해서는 java를 중점적으로 공부하려고 하는데 1. 지금 java와 C++ 자료구조를 병행해서 공부를 하는 것이 나은지(공부 비중은 C++을 더 높게) 2. 일단은 C++ 자료구조를 중점적으로 공부할지 고민되어 질문글 올립니다 ㅠㅠ - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
서울시에서 뉴딜일자리사업 일환으로 2차 서비스플랫폼개발자 양성과정으로 3개월 인턴십 (급여 월 260) 보내주는 프로그램 진행중인데 신청해보세요! 자세한 내용은 https://blog.naver.com/kjc_sh/222775806456 참고해주세요
블록체인 분야 기술을 배우고싶은 분들 or 블록체인 분야 취업을 원하시는 분들 주목! 서울시에서 뉴딜일자리사업 일환으로 IT 블록체인과정으로 3개월 인턴십 (급여 월 260) 보내주는 프로그램 진행중인데 신청해보세요! https://blog.naver.com/kjc_sh/222745988610 자세한 내용은참고해주세요 오픈카카오톡 문의 [ https://open.kakao.com/o/stkiOIhe ]
설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
Intro 안녕하세요 저의 경우 서버머신에 우분투를 올려 Vivado를 설치하는 과정에서 발생하였던 문제들과 해결 방안들을 정리해 보았습니다. 혹시 같은 문제가 생기신다면 참고해주세요. Setting Local machine : MacBook Air (M1), MacOs Monterey Remote machine : Dell R710 (Proxmox - Ubuntu 20.04 LTS x86_64) Remote Program : Royal TSX Problems 라이브러리가 설치 되지 않는 문제 libncurses5:i386 라이브러리가 설치되지 않는 문제가 있었습니다. 이는 apt-get 패키지 다운로드 서버를 이전에 kakao로 잡는 과정에서 문제가 있어 보입니다. 이에 따라 기본 다운로드 서버로 변경하여 해결하였습니다. cat <<EOF | sudo tee /etc/apt/sources.list deb <http://archive.ubuntu.com/ubuntu/> focal main universe multiverse restricted deb <http://security.ubuntu.com/ubuntu/> focal-security main universe multiverse restricted deb <http://archive.ubuntu.com/ubuntu/> focal-updates main universe multiverse restricted deb <http://archive.ubuntu.com/ubuntu/> focal-backports main universe multiverse restricted deb-src <http://archive.ubuntu.com/ubuntu/> focal main universe multiverse restricted deb-src <http://security.ubuntu.com/ubuntu/> focal-security main universe multiverse restricted deb-src <http://archive.ubuntu.com/ubuntu/> focal-updates main universe multiverse restricted deb-src <http://archive.ubuntu.com/ubuntu/> focal-backports main universe multiverse restricted EOF sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install libncurses5 libncurses5:i386 ui/PlanAhead 문제 아래의 항은 vivado & 명령어 실행시 첫 줄에 있는 log 별 문제입니다. libXrender.so.1 문제 sudo apt-get install libxrender1 libXtst.so.6 문제 sudo apt-get update sudo apt-get install libxtst6 libXi.so.6 문제 sudo apt-get install libxi6 libgconf-2-4 경험상 ui/PlanAhead 문제는 그에 맞는 라이브러리만 잘 설치되어도 문제 없어 보입니다. Can't connect to X11 window server using 'localhost:0.0' 문제 저희는 현재 가상머신 혹은 리눅스 머신을 통해 VIVADO를 실행하려 합니다. 따라서 가상머신, 리눅스 화면에서 실행하는 VIVADO 화면을 저희 컴퓨터로 불러와야 합니다. 위의 문제는 로컬(사용하는 컴퓨터)에 VIVADO 화면을 실행할 (DISPLAY)모듈이 없거나, 혹은 설정한 IP가 맞지 않아 발생하는 문제입니다. 실습에 활용한 MobaXterm의 경우 같이 설치되는것으로 알고 있으며 혹시 다른 방법으로 사용하실분은 윈도우 : VcXsrv ( https://sourceforge.net/projects/vcxsrv/ ) 맥 : Xquartz ( https://www.xquartz.org ) 설치하신뒤 실행하고 리눅스로 돌아와 아래의 명령어 중 1개로 리눅스에서 화면을 보낼 IP를 설정하시면 됩니다. export DISPLAY=자신의 IP:0.0 export DISPLAY=localhost:0.0 Please check your system resources and launch again. 문제 Failed to open 'Vivado application'. Please check your system resources and launch again. JAVA 설치하시면 됩니다. java -version sudo apt install openjdk-11-jre-headless MAC OS 마지막으로 Mac OS에서 원격으로 사용하실분을 위해 맥의 경우 X11 ($DISPLAY)를 사용하기 위해서는 다음과 같이 구성되어야 합니다. ssh 접속시 ssh -X -p port@address 로 접속 XQuartz 설치 다양한 원격 프로그램이 있으나 저의 경우 Royal TSX를 사용하였고 이로 설명 드리겠습니다. Connection 아래의 자신의 서버의 속성 창 (우클릭 - Properties) Advanced - SSH 에서 X11 Forwarding 을 Enable X11 forwarding으로 변경 https://www.xquartz.org 에서 XQuartz 설치 (2.8.1) 다른 원격에서도 동일할 것으로 보이며 Terminal 에서 ssh 접속시 ssh -X -p port@address 로 접속 XQuartz 설치 또 다른 문제 발견시 추가하겠습니다. X11의 경우 서버 재부팅시 XQuartz를 재시작 해야 할 때가 가끔있습니다. 원격 접속후 단 1회만 ./build 명령어가 작동하고 두번째 ./build 명령어는 Can't connect to X11 window server using 'localhost:0.0' 오류가 발생합니다 -> 재접속하면 해결되나 아직 정확한 문제는 해결중입니다.
더 자바, Java 8
안녕하세요. 강의를 막 수강하게 된 수강생입니다. 이제 막 자바를 배우고 있는데 듣다보니 어느정도 지식을 요하는 것 같아 질문드립니다. 혹 이 강의를 수강하기 전에 선수로 수강해야 하는 강의가 있나요?
안녕하세요 현재 서로 믿을 수 있는 스타트업 멤버 구축 되었고 추가로 능력있고 참하신 스프링 개발자 팀원 찾습니다. 현재 모두 메인 잡은 있는 상황이고 사이드 프로젝트로 운영중입니다. 관심있으신분 연락 부탁드립니다 1. 주제소개: 반려동물 서비스 중 현재 시장에 없는 서비스 2. 현재 진행 단계: 시장분석 및 명확한 주제와 컨텐츠 방향성까지 잡은 상태 3. 모집분야 및 주요업무: 앱 개발자-하이브리드 앱 (웹앱을 네이티브 형태로 감싼 형태) 유사사이트: https://www.pet-friends.co.kr/main/tab/2 4. 모집경력 및 필요스킬: 앱개발 관련하여 경력이 있거나, 최소 스프링을 자유롭게 다룰 수 있는 스킬 필요 vue.js 옵션,java 등 5. 참고기타사항: 기획/디자인/개발/마케팅 포지션 다 구성되어 있으나, 추가 개발자 필요한 상황 6. 문의/연락: 010-4590-4917 카카오: antoniobae1 7. 모임명: IT 웹 앱 마케팅 개발 창업모임 파랑새(Since 2021.10.02 : 네이버 카페 https://cafe.naver.com/lastpick1004 https://lastpick.modoo.at/ https://www.youtube.com/channel/UCpLCToWUvdjsPqkLRZ-wpZA 이 외 기획, 개발, 퍼블, 마케터 등 같이 큰 돈 벌고 싶으신 분 연락주세요:)
안녕하세요 현재 서로 믿을 수 있는 스타트업 멤버 구축 되었고 추가로 능력있고 참하신 개발자 팀원 두분 더 찾습니다. 관심있으신분 연락 부탁드립니다 1. 주제소개: 반려동물 서비스 중 현재 시장에 없는 서비스 2. 현재 진행 단계: 시장분석 및 주제와 명확한 방향성까지 잡은 상태 3. 모집분야 및 주요업무: 앱 개발자-하이브리드 앱 (웹앱을 네이티브 형태로 감싼 형태) 유사사이트: https://www.pet-friends.co.kr/main/tab/2 4. 모집경력 및 필요스킬: 앱개발 관련하여 경력이 있거나, 최소 스프링을 자유롭게 다룰 수 있는 스킬 필요 vue.js 옵션,java 등 5. 참고기타사항: 기획/디자인/개발/마케팅 포지션 다 구성되어 있으나, 추가 개발자가 두분 정도 더 필요한 상황 6. 문의/연락: 010-4590-4917 배대근 카카오:antoniobae1 참고url:IT 웹 앱 마케팅 개발 창업모임 파랑새(Since 2021.10.02 : 네이버 카페 - http://naver.me/FIgA4x8x
15일간의 빅데이터 파일럿 프로젝트
Hive Warehouse와 Python을 연결하는 방법 (저사양 파일럿 환경 기준입니다.) 위의 과정 이후 싸이킷런이나 텐서플로우 같은 것들 통해서 분석 및 평가하시면 됩니다! ps) 혹시 안되는 경우 댓글 달아주세요!
대회 링크 1:1 문의하기를 이용해주세요.