변경사항 이력이 관리되면 더 좋을 거 같아요
실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
저는 특정강의부터 따라하면서 보고 싶은데 완료프로젝트에 git으로 각 강의마다의 결과가 반영되었으면 더 좋았겠다는 생각이 들었어요 ! 좋은 강의 감사드립니다.
- java
- spring
- kotlin
- spring-boot
- 리팩토링
173만명의 커뮤니티!! 함께 토론해봐요.
실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
저는 특정강의부터 따라하면서 보고 싶은데 완료프로젝트에 git으로 각 강의마다의 결과가 반영되었으면 더 좋았겠다는 생각이 들었어요 ! 좋은 강의 감사드립니다.
김영한의 실전 자바 - 중급 2편
안녕하세요. 로 타입을 쓰는 팀원에게 어떻게 제네릭을 쓰자고 잘 설득할지 고민입니다. 20년, 10년 전의 레거시 코드를 유지보수하고 있습니다. 현재 사용중인 JDK는 1.6인데요. 그러면 객체 생성 시 할당하는 곳에서 생략하는 건 못해도 제네릭 자체는 쓸 수 있잖아요. 로 타입은 기본이요, 제네릭을 List<Map> 까지만 쓴다거나, 아예 그냥 자료구조를 따로 만들어서(?) 사용하더라고요. 그래서 최근에 제네릭을 쭉 여러 서적과 강의를 보면서 공부하고 있긴 한데, 거대한 레거시 코드라 한 번에 고칠 수는 없고... 그렇다고 팀원에게 강요하는 건 그릇된 개선이라고 봅니다. 어떻게 하면 제네릭을 잘 도입할 수 있을까요? 제가 공부를 정말~ 많이 하는 방법밖에 없는 걸까요? 제네릭 한 번 쓰면 코드의 양이 확 줄텐데 말이죠...그러면 유지보수도 편해지고 좋을텐데... 🥺
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
안녕하세요. 믿고 결제 했습니다!! 이제 막 결제를 한 단계인데요, 인프런에 올리신 강의만 다 들으면 될까요? 아니면 유튜브에 올려두신 영상들도 같이 봐야할까요? 혹시 인프런 강의랑 겹치지는 않지만 도움이 되는 유튜브의 재생목록?? 그런 게 따로 있을까 싶어서 묻습니다. 기존에 무료로 올리신 것도 좋은 영상이 많을텐데 시간이 널널하지 않아서 어떻게 참고할지 고민글 남깁니다!
자바 ORM 표준 JPA 프로그래밍 - 기본편
log 데이터베이스가 log_연_월로 매월 스키마를 자동 생성하여 로그를 기록 및 보관하고 있습니다. (ex) 2024.03월 >> log_2024_03(db) >> application_log(table), system_log(table) 2024.04월 >> log_2024_04(db) >> 테이블 구조는 동일 (새로운 연.월이 오면 자동으로 생성) .... 위에 대한 데이터베이스 구조에서 3월과 4월의 system_log 내용을 조회하고 싶다면? (조회하고 싶은 날짜는 사용자의 조건에 따라 달라질 수 있음.) mybatis에서 mapper.xml 에 쿼리를 직접 작성하여 해결 가능하지만, jpa로는 위와 같은 문제를 어떤식으로 해결할 수 있는지 조언 부탁 드립니다.
친절한 블렌더 - [LV.0] 입문 필수
안녕하세요. 유튜브로 강의 보다가 인프런 강의까지 결제하여 잘 보고 있는 수강생입니다. 저는 회사에서 텍스트 정도의 간단한 3D 그래픽을 제작하기 위해 강의를 듣고 있는데, 제가 렌더링한 3D 그래픽을 발주용 벡터 파일로 저장하기 위해 svg로 내보내기로 저장하면 화면에 아무것도 안 뜨고 빈화면만 보입니다. 문제점이 무엇인지, 해결 방법은 무엇인지 알 수 있을까요? 혹은 SVG로 내보내기 외에 벡터 파일로 3D 그래픽을 저장할 수 있는 방법이 있는지도 문의 드립니다.
안녕하세요 백엔드 독학 시 포트폴리오 준비 및 공부 방향을 어떻게 해야 할지 방향이 잡히지 않아 고수분들의 의견을 청하고자 글을 작성하게 되었습니다. 저는 백엔드 개발자를 지망하고 있고 인프런에서 강의를 들으면서 공부하고 있습니다. 현재는 자바 강의 및 김영한 님 스프링, JPA, QueryDSL 강의 및 데이터베이스 강의를 수강하였고 개인적으로 나름 포트폴리오? 하나 만들어보고자 도서 대출 반납 및 게시판 CRUD를 할 수 있는 것을 만들었습니다.(백엔드 부분 자바 코드) 화면도 만들기는 했지만 GPT 선생님의 도움을 빌려 일단 화면이 보일 수 있을 정도만 해놨습니다. 이후 협업을 경험해 보고 싶은데 현재 올라와 인프런에서 사이드 프로젝트 자리가 있으면 지원하고 있지만 뛰어난 분들이 너무 많아 참여가 힘든 것 같습니다. 일단 현재는 docker를 공부 중이며 redis, aws를 공부하려고 합니다. 현재 취업을 위해 팀 프로젝트를 하고 싶은데 어떻게 참여할 수 있을지, 많이 부족하다면 현재 어떤 방향으로 더 공부를 진행해야 할지 방향을 잡기가 힘들어 글을 쓰게 되었습니다. 중소기업에 취직하기 위해서는 JSP을 요구하는 곳도 많아 보이는데 html, css, js를 활용해서 화면도 만들 정도로 공부해야 하는 것 인지도 질문드리고 팀플 구하는 방법 및 공부 방향 및 어떤 것을 더 추가적으로 공부하면 좋을지 댓글 부탁드립니다! 감사합니다. 많은 분들께서 댓글 주시면 경청하도록 하겠습니다!
2주만에 통과하는 알고리즘 코딩테스트 (2024년)
public class BOJ_12865 { static int N; static int K; static int[][] merchandise; // 0 : 무게, 1 : 가치 static int[][] dp; public static void main(String[] args) { Scanner sc = new Scanner(System.in); N = sc.nextInt(); K = sc.nextInt(); merchandise = new int[N][2]; dp = new int[10000000][N]; for (int i = 0; i < 10000000; i++) { for (int j = 0; j < N; j++) { dp[i][j] = -1; } } for (int i = 0; i < N; i++) { merchandise[i][0] = sc.nextInt(); merchandise[i][1] = sc.nextInt(); } int max = recursion(0, 0); System.out.println(max); } private static int recursion(int index, int weight) { if (weight > K) { return Integer.MIN_VALUE; } if (index == N) { return 0; } if (dp[weight][index] != -1) { return dp[weight][index]; } dp[weight][index] = Math.max(recursion(index + 1, weight), recursion(index + 1, weight + merchandise[index][0]) + merchandise[index][1]); return dp[weight][index]; } 안녕하세요 덕분에 강의 잘 듣고 있는 수강생입니다. 냅색 문제를 풀고 있는데, 최대 가능한 무게의 경우 100 (배낭 물품의 최대 개수) * 100,000(각 물건의 최대 무게) 로 생각보다 생성해줘야하는 배열의 크기가 크더라구요. 그래서 혹시 dp를 1차원 배열로 생성하면 어떻게 되는 지 궁금하여 1차원 배열로 해본 결과, 무게를 고려하지 않고 dp의 무게 갱신을 하게 되어 답이랑은 다르게 나오네요. 혹시 1차원 배열을 시도하려고 할 때 제가 놓치고 있는 부분이 있을까요?감사합니다.
실전! Querydsl
삭제된 글입니다
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
삭제된 글입니다
현재 4학년 재학 중이고, JAVA와 Spring 기반 프로젝트를 한 개 진행 중입니다. 백엔드 쪽으로 취업을 생각 중인데, 이번 방학 중에 컴퓨터비전 쪽으로 모듈 개발 관련 인턴을 진행할 기회가 생겼습니다. 과거에도 인공지능 쪽으로 인턴을 했었는데, 제가 인턴을 진행하는 게 도움이 될 지 모르겠네요. 커리어 상으로는 인공지능을 하다가 백엔드로 틀어버린 게 된 거 같아 마구잡이로 커리어 쌓는 것처럼 보일 것 같아 고민입니다. 물론 개발 경험이 도움이 되기는 하겠지만 말이지요. 선배님들의 조언이 듣고 싶습니다.
나도코딩의 자바 기본편 - 풀코스 (20시간)
삭제된 글입니다
실전! 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 활용할 때는 유의해야할 것 같습니다.
안녕하세요 너디너리팀입니다! 너디너리는, IT 작업자들이 즐거운 삶을 살아갈 수 있도록 다양한 행사와 프로그램을 운영 및 지원하는 커뮤니티입니다. 국내 주요 25개 대학에서 앱 런칭 동아리를 운영하고 있으며, IT 관련 3,000여명의 인원이 활발히 활동하고 있습니다. 🍒 너디너리에서 출시한 '코드픽커' 서비스의 베타테스터를 모집하고있습니다. 코드픽커는 개발자의 작업 시간 단축을 목표로 하는, AI 기반의 질의응답 서비스입니다. 현재는 디스코드 내에서, 챗봇을 통해 서비스를 지원하고 있으며, 상반기 중으로 테스트 코드 작성, 코드 분석등의 기능을 탑재한 웹 서비스 런칭을 목표로 하고있습니다. 신청폼 : http://bit.ly/40QVabP 특징은 아래와 같습니다. ✔️모든 언어와 프레임워크에 대한 질문을 지원하고 있어요. ✔️AI 개발 사수 코드픽커가, 무슨 질문이든 3분 내에 답해줘요. ✔️프로그래밍 코드, 진행 방향성 등 모든 개발 관련 질문이 가능해요. ✔️다른 개발자들의 질의응답 내용 또한 모두 열람 가능해요. AI 개발 사수와 함께하며 개발 시간의 단축을 꿈꾸는 분이라면, 꼭 신청 부탁드립니다! : ) 막 오픈한 서비스라 부족한 점이 많아, 많은 피드백을 받고 싶습니다. 베타 테스트 예정 기간은 4/3 ~ 4/11 동안이며, 초기 인원으로 약 20명의 분만 모집하고자 합니다. 신청폼 : http://bit.ly/40QVabP 신청폼을 제출해주시면, 디스코드 가입 링크를 문자로 전달드릴 예정입니다. : ) 많은 신청 부탁드립니다! 감사합니다.
자바 ORM 표준 JPA 프로그래밍 - 기본편
https://xively.tistory.com/43
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
현재 국비 학원을 수료하며 프로젝트를 마친 뒤에 김영한님 강의를 듣고 있으며 spring에 대해 이제서야 이해하려 하는 취준생입니다. 문득 제가 어떤 개발을 하고 싶은지 방향성에 대해 생각해보게 되었습니다. ->어떤 개발을 하고 싶은지 방향성에 대해 되짚어 보고 있었다 ->SQL문을 짜면서 효율적인 방법은 무엇이 있을까 고민하는 과정이 스스로 가치 있는 고민을 하고 있다는 생각이 들었다. ->데이터 처리 속도 개선에 관하여 고민하는 개발자가 되고 싶다. ->대용량 트래픽을 다루는 서비스 회사에서 성장하고 싶다. 질문 ==> 위의 4문장을 설득력 있게 말하기 위해서 취준에 뛰어드는 예비 백엔드 개발자 수준에서 할 수 있는 "공부 방향"은 무엇이 있을지 조언 해주실 수 있을까요? (특정 개념이나 강의를 추천해주셔도 감사할 것 같습니다. )
실전! 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 으로 빼버리는 거 만들어주지 않을까 하는 기대가 있긴 합니다.
저는 일단 정보통신공학 2학년인데 소프트 커리를 타려고 생각중이에요 2학기에 C++ 자료구조론을 배우는데 여론으로는 C++은 게임 개발이나 인공지능? 쪽에서 많이 쓰인다고 하고 제가 생각하는 프론트/백엔드의 웹 개발자는 java나 python이 주 프로그래밍 언어이고 IT기업 쪽에서도 java를 활용한 툴(Spring 등)을 선호하고 있다고 들어서 C++은 학점 챙기는 용으로 공부하고 진로를 위해서는 java를 중점적으로 공부하려고 하는데 1. 지금 java와 C++ 자료구조를 병행해서 공부를 하는 것이 나은지(공부 비중은 C++을 더 높게) 2. 일단은 C++ 자료구조를 중점적으로 공부할지 고민되어 질문글 올립니다 ㅠㅠ - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
[가짜연구소 컨퍼런스, 4th PseudoCon] 가짜연구소에서는 이번에 "함께하는 힘"이라는 주제로 컨퍼런스를 진행합니다! 관련주제로 초대하여 발표하는 invited talks와 가짜연구소의 아카데미 활동(스터디/크루/펠로우쉽)을 발표하는 contributed talk, 그리고 새로운 팀을 만들 수 있는 기회를 갖는 네트워킹까지! 누구나 참여하실 수 있으니 주저말고 오셔서 함께하는 힘, 공유, 동기부여, 함께하는 즐거움의 가치를 누리세요!! 특별히 이번 행사는 정보통신산업진흥원(NIPA)과 Google Cloud의 후원을 받아 진행됩니다. 아쉽게도 행사는 온라인으로 진행되지만, 발표자들과 기여자들은 Google for Startups의 공간에서 진행하게 됩니다! Google의 후원을 받는 날이 오다니이이 정말 기쁩니다!! :) 비영리 머신러닝 커뮤니티 가짜연구소의 4기(2022년 상반기)에는 총30여개의 그룹, 350여명이 함께 성장하며 가짜연구소의 가치를 실현해나가고 있습니다. 이번 기수에서는 삼성서울병원에서 외과의사로 근무하시는 남기님이 <CV in Surgery>팀을, Graph 관련 팀만 벌써 3번이나 이끄신 수민님의 <Groovy Graph>, 무료 튜토리얼을 자주 열어주시는 mlops 전문가 정훈님의 <ml-with-the-flow> 등 다양하고 흥미로운 주제를 기반으로 스터디와 연구개발이 이루어졌습니다! 케글 메달들과 인공지능 경진대회 우승, 70여명이 참여한 오프라인 네트워킹 파티, 다양한 튜토리얼과 쿡북, 스터디 자료와 논문 리뷰 등이 이루어졌습니다. 앞으로는 "비영리 연구"의 새로운 무브먼트를 만들기 위해 조직을 재구성하려합니다! 그러한 발표도 할 예정이니 기대해주세요!! 신청 링크: https://event-us.kr/pseudolab/event/45800 행사 정보: https://pseudo-lab.com/5aa0d71c7e7749de9545222f12c61c5e?v=32ac5977503c40618e3bdcac0035dd20&p=bdde093d551e4b59988eccaceb8ac41c 가짜연구소 디스코드 커뮤니티: https://discord.gg/EPurkHVtp2 --- 이 바쁘고 복잡한 세상에서 홀로 공부하는 것은 매우 힘이듭니다. 쏟아지는 정보를 홀로 감당하기 힘들 뿐더러, 바쁜 일상 속에 홀로 의지내어 목표 지점까지 완주하는 것은 참 어렵습니다. 그런데, 함께함은 어려운 일이 아니라, 상대적으로 쉬운 일입니다. 어떠한 작은 움직임이, 참여가, 소통이 축적되어 여러분의 삶을 크게 변화시킬 것을 기대해보세요! 단순히 혼자 공부하는 것을 함께함으로 효율적이 되는 것 뿐만 아니라, 약한 의지도 강하게 만들고, 하나의 목표를 끝까지 끌고나가 목표까지 달성하고, 같은 분야에서 오래 함께 소통하는 가짜연구소의 이야기를 들어보고 싶으시지 않으신가요? 여러분들의 참여는 거창할 필요 없습니다. 준비될 필요 없습니다. 서로에게 의지할 수 있도록 오히려 내려놓고 부족함을 인정하십시오! 그리고 함께함으로 부족함을 채워나가 끝까지 완주함으로 걸어온 발자취를 뒤돌아보며, 함께 얘기할 수 있는 동료가 있다면 얼마나 행복할까요. 여러분들의 성장 과정이 스트레스나 고통이 아닌 스토리와 즐거움이 가득하기를 바랍니다!
서울시에서 뉴딜일자리사업 일환으로 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 ]