From c807bfc13aeefec46b61ea01456e0715387f60bb Mon Sep 17 00:00:00 2001 From: hyungjun <115551339+sukangpunch@users.noreply.github.com> Date: Thu, 18 Jun 2026 17:45:32 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=EA=B2=8C=EC=8B=9C=EA=B8=80=20?= =?UTF-8?q?=EC=B9=B4=ED=85=8C=EA=B3=A0=EB=A6=AC=EC=97=90=20=EB=8F=99?= =?UTF-8?q?=ED=96=89,=20=EC=A4=91=EA=B3=A0=EA=B1=B0=EB=9E=98=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: 게시글 카테고리에 동행, 중고거래 추가 - PostCategory enum에 동행, 중고거래 추가 - post 테이블 category ENUM 컬럼 마이그레이션 (V52) - 신규 카테고리 게시글 생성 및 카테고리별 조회 필터링 테스트 추가 Co-Authored-By: Claude Opus 4.8 (1M context) * test: 성공적 생성 테스트와 중복되는 카테고리 생성 테스트 제거 Co-Authored-By: Claude Opus 4.8 (1M context) * fix: flyway 버전 충돌 해결 --------- Co-authored-by: Claude Opus 4.8 (1M context) --- .../community/post/domain/PostCategory.java | 2 +- ...panion_and_used_trade_to_post_category.sql | 2 + .../post/service/PostQueryServiceTest.java | 50 +++++++++++++++++++ 3 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/db/migration/V53__add_companion_and_used_trade_to_post_category.sql diff --git a/src/main/java/com/example/solidconnection/community/post/domain/PostCategory.java b/src/main/java/com/example/solidconnection/community/post/domain/PostCategory.java index 76b003bc5..0b1598bd2 100644 --- a/src/main/java/com/example/solidconnection/community/post/domain/PostCategory.java +++ b/src/main/java/com/example/solidconnection/community/post/domain/PostCategory.java @@ -5,7 +5,7 @@ import java.util.stream.Collectors; public enum PostCategory { - 전체, 자유, 질문; + 전체, 자유, 질문, 동행, 중고거래; private static final Set NAMES = Arrays.stream(values()) .map(Enum::name) diff --git a/src/main/resources/db/migration/V53__add_companion_and_used_trade_to_post_category.sql b/src/main/resources/db/migration/V53__add_companion_and_used_trade_to_post_category.sql new file mode 100644 index 000000000..5be62db68 --- /dev/null +++ b/src/main/resources/db/migration/V53__add_companion_and_used_trade_to_post_category.sql @@ -0,0 +1,2 @@ +ALTER TABLE post + MODIFY COLUMN category ENUM ('자유', '전체', '질문', '동행', '중고거래') NULL; diff --git a/src/test/java/com/example/solidconnection/community/post/service/PostQueryServiceTest.java b/src/test/java/com/example/solidconnection/community/post/service/PostQueryServiceTest.java index 66803d688..6d8dd67f1 100644 --- a/src/test/java/com/example/solidconnection/community/post/service/PostQueryServiceTest.java +++ b/src/test/java/com/example/solidconnection/community/post/service/PostQueryServiceTest.java @@ -135,6 +135,56 @@ void setUp() { ); } + @Test + void 동행_카테고리로_조회시_해당_카테고리의_게시글만_조회한다() { + // given + Post 동행_게시글 = postFixture.게시글( + "동행 제목", + "동행 내용", + false, + PostCategory.동행, + boardFixture.자유게시판(), + user + ); + + // when + List actualResponses = postQueryService.findPostsByCodeAndPostCategoryOrderByCreatedAtDesc( + BoardCode.FREE.name(), + PostCategory.동행.name(), + null + ); + + // then + assertThat(actualResponses) + .extracting(PostListResponse::id) + .containsExactly(동행_게시글.getId()); + } + + @Test + void 중고거래_카테고리로_조회시_해당_카테고리의_게시글만_조회한다() { + // given + Post 중고거래_게시글 = postFixture.게시글( + "중고거래 제목", + "중고거래 내용", + false, + PostCategory.중고거래, + boardFixture.자유게시판(), + user + ); + + // when + List actualResponses = postQueryService.findPostsByCodeAndPostCategoryOrderByCreatedAtDesc( + BoardCode.FREE.name(), + PostCategory.중고거래.name(), + null + ); + + // then + assertThat(actualResponses) + .extracting(PostListResponse::id) + .containsExactly(중고거래_게시글.getId()); + } + @Test void 전체_카테고리로_조회시_해당_게시판의_모든_게시글을_조회한다() { // given From 4622acead97685aa96c067ed99afaf117b837e5a Mon Sep 17 00:00:00 2001 From: seonghyeok cho <65901319+whqtker@users.noreply.github.com> Date: Fri, 19 Jun 2026 15:27:37 +0900 Subject: [PATCH 2/2] =?UTF-8?q?refactor:=20university=5Finfo=5Ffor=5Fapply?= =?UTF-8?q?=20=EB=AF=B8=EC=82=AC=EC=9A=A9=20=EC=BB=AC=EB=9F=BC=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0=20(#775)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - UnivApplyInfo 엔티티에서 tuitionFeeType, detailsForApply, detailsForMajor, detailsForEnglishCourse, details 필드 제거 - TuitionFeeType 열거형 삭제 - UnivApplyInfoColumn에서 대응 enum 상수 5개 제거 - AdminUnivApplyInfoRowSaver의 ImportData 및 switch case 정리 - data.sql INSERT 구문에서 제거된 컬럼 반영 - V54 마이그레이션으로 DB 컬럼 DROP --- .../service/AdminUnivApplyInfoRowSaver.java | 23 ---- .../university/domain/TuitionFeeType.java | 17 --- .../university/domain/UnivApplyInfo.java | 16 --- .../domain/UnivApplyInfoColumn.java | 5 - src/main/resources/data.sql | 104 +++++++----------- ...ve_unused_columns_from_univ_apply_info.sql | 6 + .../fixture/UnivApplyInfoFixtureBuilder.java | 6 +- 7 files changed, 45 insertions(+), 132 deletions(-) delete mode 100644 src/main/java/com/example/solidconnection/university/domain/TuitionFeeType.java create mode 100644 src/main/resources/db/migration/V54__remove_unused_columns_from_univ_apply_info.sql diff --git a/src/main/java/com/example/solidconnection/admin/university/service/AdminUnivApplyInfoRowSaver.java b/src/main/java/com/example/solidconnection/admin/university/service/AdminUnivApplyInfoRowSaver.java index d4591ff3e..30f8d1cc8 100644 --- a/src/main/java/com/example/solidconnection/admin/university/service/AdminUnivApplyInfoRowSaver.java +++ b/src/main/java/com/example/solidconnection/admin/university/service/AdminUnivApplyInfoRowSaver.java @@ -13,7 +13,6 @@ import com.example.solidconnection.university.domain.LanguageRequirement; import com.example.solidconnection.university.domain.LanguageTestType; import com.example.solidconnection.university.domain.SemesterAvailableForDispatch; -import com.example.solidconnection.university.domain.TuitionFeeType; import com.example.solidconnection.university.domain.UnivApplyInfo; import com.example.solidconnection.university.repository.HostUniversityRepository; import com.example.solidconnection.university.repository.UnivApplyInfoRepository; @@ -55,17 +54,12 @@ public String save( homeUniversity, data.universityKoreanName, data.studentCapacity, - data.tuitionFeeType, data.semesterAvailableForDispatch, data.semesterRequirement, data.detailsForLanguage, data.gpaRequirement, data.gpaRequirementCriteria, - data.detailsForApply, - data.detailsForMajor, data.detailsForAccommodation, - data.detailsForEnglishCourse, - data.details, data.extraInfo.isEmpty() ? null : data.extraInfo, new HashSet<>(), hostUniversity @@ -124,14 +118,6 @@ private void applyStructuredField(ImportData data, String header, String fieldNa throw new CustomException(INVALID_INPUT, "선발 인원은 정수여야 합니다: '" + value + "'"); } } - case "tuitionFeeType" -> { - try { - data.tuitionFeeType = TuitionFeeType.valueOf(value); - } catch (IllegalArgumentException e) { - throw new CustomException(INVALID_INPUT, - "유효하지 않은 등록금 유형입니다. 가능한 값: " + validEnumValues(TuitionFeeType.values())); - } - } case "semesterAvailableForDispatch" -> { try { data.semesterAvailableForDispatch = SemesterAvailableForDispatch.valueOf(value); @@ -144,11 +130,7 @@ private void applyStructuredField(ImportData data, String header, String fieldNa case "detailsForLanguage" -> applyWithLength(value, 2000, s -> data.detailsForLanguage = s); case "gpaRequirement" -> applyWithLength(value, 100, s -> data.gpaRequirement = s); case "gpaRequirementCriteria" -> applyWithLength(value, 100, s -> data.gpaRequirementCriteria = s); - case "detailsForApply" -> applyWithLength(value, 3000, s -> data.detailsForApply = s); - case "detailsForMajor" -> applyWithLength(value, 3000, s -> data.detailsForMajor = s); case "detailsForAccommodation" -> applyWithLength(value, 2000, s -> data.detailsForAccommodation = s); - case "detailsForEnglishCourse" -> applyWithLength(value, 1000, s -> data.detailsForEnglishCourse = s); - case "details" -> applyWithLength(value, 3000, s -> data.details = s); default -> data.extraInfo.put(header, value); } } @@ -209,17 +191,12 @@ private static class ImportData { String accommodationUrl; String detailsForLocal; Integer studentCapacity; - TuitionFeeType tuitionFeeType; SemesterAvailableForDispatch semesterAvailableForDispatch; String semesterRequirement; String detailsForLanguage; String gpaRequirement; String gpaRequirementCriteria; - String detailsForApply; - String detailsForMajor; String detailsForAccommodation; - String detailsForEnglishCourse; - String details; Map extraInfo = new HashMap<>(); Map languageRequirements = new HashMap<>(); } diff --git a/src/main/java/com/example/solidconnection/university/domain/TuitionFeeType.java b/src/main/java/com/example/solidconnection/university/domain/TuitionFeeType.java deleted file mode 100644 index c7abc09e1..000000000 --- a/src/main/java/com/example/solidconnection/university/domain/TuitionFeeType.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.example.solidconnection.university.domain; - -public enum TuitionFeeType { - HOME_UNIVERSITY_PAYMENT("본교등록금납부형"), - OVERSEAS_UNIVERSITY_PAYMENT("해외대학등록금납부형"), - MIXED_PAYMENT("혼합형"); - - private final String koreanName; - - TuitionFeeType(String koreanName) { - this.koreanName = koreanName; - } - - public String getKoreanName() { - return koreanName; - } -} diff --git a/src/main/java/com/example/solidconnection/university/domain/UnivApplyInfo.java b/src/main/java/com/example/solidconnection/university/domain/UnivApplyInfo.java index 0c5486b7c..e8db34703 100644 --- a/src/main/java/com/example/solidconnection/university/domain/UnivApplyInfo.java +++ b/src/main/java/com/example/solidconnection/university/domain/UnivApplyInfo.java @@ -51,10 +51,6 @@ public class UnivApplyInfo extends BaseEntity { @Column(name = "student_capacity") private Integer studentCapacity; - @Column(name = "tuition_fee_type") - @Enumerated(EnumType.STRING) - private TuitionFeeType tuitionFeeType; - @Column(name = "semester_available_for_dispatch") @Enumerated(EnumType.STRING) private SemesterAvailableForDispatch semesterAvailableForDispatch; @@ -71,21 +67,9 @@ public class UnivApplyInfo extends BaseEntity { @Column(name = "gpa_requirement_criteria", length = 100) private String gpaRequirementCriteria; - @Column(name = "details_for_apply", length = 3000) - private String detailsForApply; - - @Column(name = "details_for_major", length = 3000) - private String detailsForMajor; - @Column(name = "details_for_accommodation", length = 2000) private String detailsForAccommodation; - @Column(name = "details_for_english_course", length = 1000) - private String detailsForEnglishCourse; - - @Column(name = "details", length = 3000) - private String details; - @JdbcTypeCode(SqlTypes.JSON) @Column(name = "extra_info", columnDefinition = "JSON") private Map extraInfo; diff --git a/src/main/java/com/example/solidconnection/university/domain/UnivApplyInfoColumn.java b/src/main/java/com/example/solidconnection/university/domain/UnivApplyInfoColumn.java index 85cb19aac..4680bf33e 100644 --- a/src/main/java/com/example/solidconnection/university/domain/UnivApplyInfoColumn.java +++ b/src/main/java/com/example/solidconnection/university/domain/UnivApplyInfoColumn.java @@ -16,17 +16,12 @@ public enum UnivApplyInfoColumn { UNIVERSITY_ACCOMMODATION_URL("universityAccommodationUrl"), UNIVERSITY_DETAILS_FOR_LOCAL("universityDetailsForLocal"), STUDENT_CAPACITY("studentCapacity"), - TUITION_FEE_TYPE("tuitionFeeType"), SEMESTER_AVAILABLE_FOR_DISPATCH("semesterAvailableForDispatch"), SEMESTER_REQUIREMENT("semesterRequirement"), DETAILS_FOR_LANGUAGE("detailsForLanguage"), GPA_REQUIREMENT("gpaRequirement"), GPA_REQUIREMENT_CRITERIA("gpaRequirementCriteria"), - DETAILS_FOR_APPLY("detailsForApply"), - DETAILS_FOR_MAJOR("detailsForMajor"), DETAILS_FOR_ACCOMMODATION("detailsForAccommodation"), - DETAILS_FOR_ENGLISH_COURSE("detailsForEnglishCourse"), - DETAILS("details"), ; private final String fieldName; diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql index 8c585f47f..f71e0f1fa 100644 --- a/src/main/resources/data.sql +++ b/src/main/resources/data.sql @@ -182,81 +182,51 @@ VALUES (1, 'US', 'AMERICAS', 'University of Guam', 'university_of_guam', '괌대 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/bunkyo_gakuin_university/1.png'); INSERT INTO university_info_for_apply(term_id, university_id, home_university_id, korean_name, semester_requirement, student_capacity, - semester_available_for_dispatch, tuition_fee_type, details_for_major, - details_for_apply, details_for_language, details_for_english_course, - details_for_accommodation, details) -VALUES (1, 1, 1, '괌대학(A형)', 2, 1, 'IRRELEVANT', 'HOME_UNIVERSITY_PAYMENT', '파견대학에 지원하는 전공과 본교 전공이 일치해야함', NULL, - '외국어 성적 유효기간이 파견대학의 지원시까지 유효해야함', NULL, NULL, NULL), - (1, 1, 1, '괌대학(B형)', 2, 2, 'IRRELEVANT', 'OVERSEAS_UNIVERSITY_PAYMENT', '파견대학에 지원하는 전공과 본교 전공이 일치해야함', NULL, - '외국어 성적 유효기간이 파견대학의 지원시까지 유효해야함', NULL, NULL, '등록금 관련 정보: https://www.uog.edu/financial-aid/cost-to-attend'), - (1, 2, 1, '네바다주립대학 라스베이거스(B형)', 2, 5, 'IRRELEVANT', 'OVERSEAS_UNIVERSITY_PAYMENT', - '- 지원가능전공: 공학계열 관련 전공자
- 파견대학에 지원하는 전공과 본교 전공이 일치해야함', - NULL, '영어 점수는 다음의 세부영역 점수를 각각 만족해야 함
- IELTS : 모든 영역에서 5.5 이상', NULL, NULL, - ' - The Engineering International Programs (EIP) Programs 안의 글로벌 하이브리드 프로그램으로 선발됨
※ 하이브리드 프로그램: 정규 과목 + 비정규 General Education Courses 과목 수강으로 구성, 정규(약 6학점) / 비정규 (약 135시간 이상) 수업 수강 (세부사항 변동 가능)
- 기숙사가 있지만 기숙사 확정이 늦게 발표되고 전원보장이 어려워, 외부숙소로 진행될 수도 있음, 한 학기 기숙사 비용: 약 $4,500~$6,000
- 한 학기 등록금: 약 $7,500
- International Program and Service Fees $2,500'), - (1, 3, 1, '메모리얼 대학 세인트존스(A형)', 2, 4, 'ONE_SEMESTER', 'HOME_UNIVERSITY_PAYMENT', - '타전공 지원 및 수강 가능
- 지원불가능전공: Medicine, Pharmacy, Social work, Nursing
- Computer Science, Music 지원 제한적', - NULL, + semester_available_for_dispatch, details_for_language, + details_for_accommodation) +VALUES (1, 1, 1, '괌대학(A형)', 2, 1, 'IRRELEVANT', + '외국어 성적 유효기간이 파견대학의 지원시까지 유효해야함', NULL), + (1, 1, 1, '괌대학(B형)', 2, 2, 'IRRELEVANT', + '외국어 성적 유효기간이 파견대학의 지원시까지 유효해야함', NULL), + (1, 2, 1, '네바다주립대학 라스베이거스(B형)', 2, 5, 'IRRELEVANT', + '영어 점수는 다음의 세부영역 점수를 각각 만족해야 함
- IELTS : 모든 영역에서 5.5 이상', NULL), + (1, 3, 1, '메모리얼 대학 세인트존스(A형)', 2, 4, 'ONE_SEMESTER', '영어 점수는 다음의 세부영역 점수를 각각 만족해야함
- TOEFL iBT : 읽기/쓰기 20점, 듣기/말하기 17점 이상
- IELTS : 모든 영역에서 6.0 이상
- 외국어 성적 유효기간이 파견대학의 학기 시작하는 날까지 유효해야함 ', - NULL, NULL, NULL), - (1, 3, 1, '메모리얼 대학 세인트존스(B형)', 2, 5, 'IRRELEVANT', 'OVERSEAS_UNIVERSITY_PAYMENT', - '타전공 지원 및 수강 가능
- 지원불가능전공: Medicine, Pharmacy, Social work, Nursing
- Computer Science, Music 지원 제한적', - NULL, + NULL), + (1, 3, 1, '메모리얼 대학 세인트존스(B형)', 2, 5, 'IRRELEVANT', '영어 점수는 다음의 세부영역 점수를 각각 만족해야함
- TOEFL iBT : 읽기/쓰기 20점, 듣기/말하기 17점 이상
- IELTS : 모든 영역에서 6.0 이상
- 외국어 성적 유효기간이 파견대학의 학기 시작하는 날까지 유효해야함 ', - NULL, NULL, '국제학생 등록금 적용 (학점당 $2,080)'), - (1, 4, 1, '서던퀸스랜드대학(B형)', 2, 5, 'ONE_SEMESTER', 'OVERSEAS_UNIVERSITY_PAYMENT', - '- 타전공 지원 및 수강 가능
- 미술 계열, 간호학, 약학, 교육학 등 제한 있음
- 학과별 지원 자격요건이 있는 경우 모두 충족해야 하며, 사전 승인 필요', NULL, - '영어 점수는 다음의 세부영역 점수를 각각 만족해야 함
- IELTS: 각 영역 최소 5.5 이상
- 외국어 성적 유효기간이 파견대학의 지원시까지 유효해야함 ', NULL, NULL, - '서던퀸스랜드대학은 Trimester로 운영되므로 학사일정을 반드시 참고하길 바람
- In-state 등록금 납부
(등록금 관련 정보 : https://www.unisq.edu.au/international/partnerships/study-abroad-exchange/fees-scholarships)'), - (1, 5, 1, '시드니대학', 2, 5, 'IRRELEVANT', 'OVERSEAS_UNIVERSITY_PAYMENT', - '타전공 지원 및 수강 가능
- MECO, CAEL, LAWS unit 수강 여석 제한 있음', - NULL, + NULL), + (1, 4, 1, '서던퀸스랜드대학(B형)', 2, 5, 'ONE_SEMESTER', + '영어 점수는 다음의 세부영역 점수를 각각 만족해야 함
- IELTS: 각 영역 최소 5.5 이상
- 외국어 성적 유효기간이 파견대학의 지원시까지 유효해야함 ', + NULL), + (1, 5, 1, '시드니대학', 2, 5, 'IRRELEVANT', '영어 점수는 다음의 세부영역 점수를 각각 만족해야함
- IELTS: 모든 영역에서 6.0 이상
- TOEFL IBT: 읽기/듣기/말하기 17점, 쓰기 19점 이상
- 어학성적은 파견학기 시작시까지 유효하여야함', - NULL, NULL, 'OSHC(Overseas Student Health Cover) 국제학생 보험가입 의무 (2023년 기준 AUD 348/학기, 학기마다 비용 상이)'), - (1, 6, 1, '커틴대학(A형)', 2, 3, 'ONE_SEMESTER', 'HOME_UNIVERSITY_PAYMENT', - '타전공 지원 및 수강 가능
지원 불가능 전공: Physiotherapy, Medicine, Nursing, Occupational Therapy ', NULL, + NULL), + (1, 6, 1, '커틴대학(A형)', 2, 3, 'ONE_SEMESTER', '영어 점수는 다음의 세부영역 점수를 각각 만족해야함
- IELTS: 모든 영역에서 6.0 이상
- TOEFL IBT: 읽기 13점, 쓰기 21점, 듣기 13점, 말하기 18점 이상
- 어학성적은 파견학기 시작시까지 유효하여야함', - NULL, NULL, - '※ 24-1학기에 한하여 ''Destination Australia Cheung Kong Exchange Program Scholarship'' 지급 예정 (신청자 중 가장 총점이 우수한 학생 1명에게 AUD$6000 지급, 상세 내용은 국제처 홈페이지 해외대학정보 공지글 참고)'), - (1, 7, 1, '서던덴마크대학교', 4, 2, 'IRRELEVANT', 'HOME_UNIVERSITY_PAYMENT', - '- 주전공과 지원전공이 반드시 일치할 필요는 없으나 본교에서 기초과목을 이수하여야 함
- 교환학생에게 제공되는 수업만 수강 가능
- Faculty of Engineering 내에서 2/3이상의 수업을 수강하여야 함
- 30 ECTS 수강', - '- 어학성적표가 해당 대학 신청서 제출 시 유효하여야 함(~10월 1일)', NULL, NULL, '- 교외 숙소', NULL), - (1, 8, 1, '코펜하겐 IT대학', 2, 2, 'ONE_SEMESTER', 'HOME_UNIVERSITY_PAYMENT', - '- 본교 기초과목 이수사항에 따라 지원이 제한될 수 있으나 소속전공과 정확하게 일치 하지 않아도 지원은 가능(연관 전공이어야 함)
- 최소 7.5 ECTS, 최대 30ECTS 수강 가능
- 교차 수강 가능(선수과목이 지정되어있는 과목은 사전에 이수하여야 수강이 가능함)', - '- 어학성적표가 해당 대학 신청서 제출 시 유효하여야 함(~11월 1일)', NULL, NULL, '- 제공(학교 운영 기숙사 아님)
- 선착순 배정', NULL), - (1, 9, 1, '노이울름 대학', 2, 3, 'IRRELEVANT', 'HOME_UNIVERSITY_PAYMENT', '타전공 지원 및 수강 가능', NULL, + NULL), + (1, 7, 1, '서던덴마크대학교', 4, 2, 'IRRELEVANT', NULL, '- 교외 숙소'), + (1, 8, 1, '코펜하겐 IT대학', 2, 2, 'ONE_SEMESTER', NULL, '- 제공(학교 운영 기숙사 아님)
- 선착순 배정'), + (1, 9, 1, '노이울름 대학', 2, 3, 'IRRELEVANT', '영어 점수는 다음의 세부영역 점수를 각각 만족해야 함
- TOEFL IBT: 읽기 18점; 듣기 17점, 말하기 20점, 쓰기 17점
- TOEIC: 읽기 385점, 듣기 400점, 말하기 160점, 쓰기 150점
외국어 성적 유효기간이 파견대학의 학기 시작하는 시점까지 유효해야 함', - NULL, NULL, NULL), - (1, 10, 1, '헐대학', 4, 3, 'ONE_SEMESTER', 'HOME_UNIVERSITY_PAYMENT', - '제한학과 많음. (Factsheet참조및Factsheet언급된 제한학과 외에도 학기마다 제한학과 발생가능성있음). 지원 전 권역 담당자랑 사전상담 요망. 학기당 30ECTS수강해야 LA승인남. 성적처리 늦은 편이라 8차 학기 수학자는 성적처리 늦은 거 감안하고 추가 이에 따른 불편함이 있음을 인지후 지원요망. ', - '지원 전 권역 담당자와 사전상담 요망', + NULL), + (1, 10, 1, '헐대학', 4, 3, 'ONE_SEMESTER', '- 영어 점수는 다음의 세부영역 점수를 각각 만족해야 함
- TOEFL iBT : 듣기 및 쓰기 18점, 읽기 18점, 말하기 20점, 쓰기 18점 이상
- IELTS : 모든 영역에서 6.0이상', - NULL, NULL, '영국 생활비 및 숙소비용 유럽권 지역 중 상대적으로 매우 높은편. 지원전 반드시 사전고려 요망'), - (1, 11, 1, '그라츠 대학', 3, 2, 'IRRELEVANT', 'HOME_UNIVERSITY_PAYMENT', '-주전공 혹은 제2전공(혹은 연계전공과) 유관학과여아 함', - '선발인원 중 차순위 합격자는 학기제한(1개 학기)이 있을 수 있음', NULL, NULL, '학교인근 외부 숙소는 있지만, 외부업체운영숙소라 대학관할아님', NULL), - (1, 12, 1, '그라츠공과대학', 2, 2, 'IRRELEVANT', 'HOME_UNIVERSITY_PAYMENT', '-주전공 혹은 제2전공(혹은 연계전공과) 유관학과여아 함', - '선발인원 중 차순위 합격자는 학기제한(1개 학기)이 있을 수 있음', - '- 영어 점수는 다음의 세부영역 점수를 각각 만족해야 함
- TOEFL IBT: 읽기 18점 이상, 쓰기 17점 이상, 말하기 20점 이상, 듣기 17점 이상
- IELTS: 쓰기 5.5점 이상, 말하기 6점 이상
''- TOEIC의 경우 S/W 점수 합산 310점 이상 ', - NULL, - '자체기숙사는 없음. 교환학생이 많이 지원한 학기에는 예약이 어려울 수도 있음(선착순 경우많음). 더블룸 기준약 한달에 € 340 per month (기숙사 종류게 따라 가격 차이 유) 예산잡으면됨.', NULL), - (1, 13, 1, '린츠 카톨릭 대학교', 3, 2, 'ONE_SEMESTER', 'HOME_UNIVERSITY_PAYMENT', - '- 지원가능전공: History, Philosophy, Art History, theology
(영어과목 수가 그리 많지는 않으므로, 사전 확인필요)
''- 학기당 최소 15ECTS 수강신청해야 함', - '봄학기에는 영어과목이 극히 제한적으로 열린다고 함. 지원 전 권역 담당자와 사전상담 요망', NULL, NULL, '학교에서 몇가지 기숙사 옵션 합격시 연결예정.', NULL), - (1, 14, 1, '빈 공과대학교', 3, 2, 'IRRELEVANT', 'HOME_UNIVERSITY_PAYMENT', - '지원전공과 일치하지 않아도 지원가능하나 유사전공자만 지원가능하며, 본전공과 일치하지않으면 입학 및 수강에 불리할 수 있음
''-학기당 최소 15.ECTS 수강신청해야함', - '선발인원 중 차순위 합격자는 학기제한(1개 학기)이 있을 수 있음', NULL, NULL, '기숙사없음', NULL), - (1, 15, 1, 'IPSA', 4, 3, 'IRRELEVANT', 'HOME_UNIVERSITY_PAYMENT', - '- 소속전공과 지원전공이 일치 또는 유사하여야 함 : 전공이 제한적이므로 반드시 홈페이지에서 지원 가능 전공을 확인할 것
- 최대 30ECTS 수강', - '- 어학성적표가 해당 대학 신청서 제출 시 유효하여야 함(~11월 15일)', NULL, NULL, '- 미제공', NULL), - (1, 16, 1, '메이지대학', 2, 3, 'IRRELEVANT', 'HOME_UNIVERSITY_PAYMENT', - 'https://www.meiji.ac.jp/cip/english/admissions/co7mm90000000461-att/co7mm900000004d1.pdf', - '*해당 학교 일정 상 10월초까지 서류제출 필요', '학부별로 기준 상이, 관련페이지 참조', NULL, NULL, NULL), + (1, 11, 1, '그라츠 대학', 3, 2, 'IRRELEVANT', NULL, + '학교인근 외부 숙소는 있지만, 외부업체운영숙소라 대학관할아님'), + (1, 12, 1, '그라츠공과대학', 2, 2, 'IRRELEVANT', + '- 영어 점수는 다음의 세부영역 점수를 각각 만족해야 함
- TOEFL IBT: 읽기 18점 이상, 쓰기 17점 이상, 말하기 20점 이상, 듣기 17점 이상
- IELTS: 쓰기 5.5점 이상, 말하기 6점 이상
''- TOEIC의 경우 S/W 점수 합산 310점 이상 ', + '자체기숙사는 없음. 교환학생이 많이 지원한 학기에는 예약이 어려울 수도 있음(선착순 경우많음). 더블룸 기준약 한달에 € 340 per month (기숙사 종류게 따라 가격 차이 유) 예산잡으면됨.'), + (1, 13, 1, '린츠 카톨릭 대학교', 3, 2, 'ONE_SEMESTER', NULL, + '학교에서 몇가지 기숙사 옵션 합격시 연결예정.'), + (1, 14, 1, '빈 공과대학교', 3, 2, 'IRRELEVANT', NULL, '기숙사없음'), + (1, 15, 1, 'IPSA', 4, 3, 'IRRELEVANT', NULL, '- 미제공'), + (1, 16, 1, '메이지대학', 2, 3, 'IRRELEVANT', '학부별로 기준 상이, 관련페이지 참조', NULL), (1, 17, 1, '바이카여자대학', 2, 1, 'IRRELEVANT', NULL, - '교환학생 지원가능 : Department of Global English, Department of Japanese culture, Department of Media and Information, Department of Psychology.', - '여학생만 신청가능', NULL, NULL, - '기숙사 없음, 계약된 외부 기숙사 사용-"Maison de Claire Ibaraki" 62,300엔/월, 2식 포함, 계약시 66,000엔 청구 (2023년 6월기준)', NULL), - (1, 18, 1, '분쿄가쿠인대학', 2, 3, 'ONE_YEAR', 'HOME_UNIVERSITY_PAYMENT', NULL, NULL, NULL, NULL, - '기숙사 보유, off campus, 식사 미제공, 45,000~50,000엔/월', NULL); + '기숙사 없음, 계약된 외부 기숙사 사용-"Maison de Claire Ibaraki" 62,300엔/월, 2식 포함, 계약시 66,000엔 청구 (2023년 6월기준)'), + (1, 18, 1, '분쿄가쿠인대학', 2, 3, 'ONE_YEAR', NULL, + '기숙사 보유, off campus, 식사 미제공, 45,000~50,000엔/월'); INSERT INTO language_requirement(language_test_type, min_score, university_info_for_apply_id) VALUES ('TOEFL_IBT', '80', 1), diff --git a/src/main/resources/db/migration/V54__remove_unused_columns_from_univ_apply_info.sql b/src/main/resources/db/migration/V54__remove_unused_columns_from_univ_apply_info.sql new file mode 100644 index 000000000..239af05e3 --- /dev/null +++ b/src/main/resources/db/migration/V54__remove_unused_columns_from_univ_apply_info.sql @@ -0,0 +1,6 @@ +ALTER TABLE university_info_for_apply + DROP COLUMN tuition_fee_type, + DROP COLUMN details_for_apply, + DROP COLUMN details_for_major, + DROP COLUMN details_for_english_course, + DROP COLUMN details; diff --git a/src/test/java/com/example/solidconnection/university/fixture/UnivApplyInfoFixtureBuilder.java b/src/test/java/com/example/solidconnection/university/fixture/UnivApplyInfoFixtureBuilder.java index 7f57a0038..169d2260c 100644 --- a/src/test/java/com/example/solidconnection/university/fixture/UnivApplyInfoFixtureBuilder.java +++ b/src/test/java/com/example/solidconnection/university/fixture/UnivApplyInfoFixtureBuilder.java @@ -1,7 +1,6 @@ package com.example.solidconnection.university.fixture; import static com.example.solidconnection.university.domain.SemesterAvailableForDispatch.ONE_SEMESTER; -import static com.example.solidconnection.university.domain.TuitionFeeType.HOME_UNIVERSITY_PAYMENT; import com.example.solidconnection.university.domain.HomeUniversity; import com.example.solidconnection.university.domain.HostUniversity; @@ -48,10 +47,9 @@ public UnivApplyInfoFixtureBuilder homeUniversity(HomeUniversity homeUniversity) public UnivApplyInfo create() { UnivApplyInfo univApplyInfo = new UnivApplyInfo( - null, termId, homeUniversity, koreanName, 1, HOME_UNIVERSITY_PAYMENT, ONE_SEMESTER, + null, termId, homeUniversity, koreanName, 1, ONE_SEMESTER, "1", "detailsForLanguage", "gpaRequirement", - "gpaRequirementCriteria", "detailsForApply", "detailsForMajor", - "detailsForAccommodation", "detailsForEnglishCourse", "details", + "gpaRequirementCriteria", "detailsForAccommodation", null, new HashSet<>(), university ); return univApplyInfoRepository.save(univApplyInfo);