디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

파이썬, 자바, 코틀린 같은 기능 하는 좀 긴 코드 일이 비교앱에서 작성

발명도둑잡기(118.216) 2025.07.06 19:23:21
조회 112 추천 0 댓글 0

좋습니다!
이번에는 Python, Java, Kotlin 세 언어에서 같은 기능을 구현한 긴 코드 예제를 비교해볼게요.

✅ 예제 기능 (실무급 기능)

학생 목록 JSON 파일을 불러옴
평균 점수 계산
60점 이상인 학생만 이름/점수 출력
합격자 목록을 새 JSON 파일로 저장

1. Python (표준 라이브러리 사용)

import json # JSON 불러오기 with open('students.json', 'r') as f: students = json.load(f) # 평균 계산 total = sum(s['score'] for s in students) avg = total / len(students) print(f"Average: {avg:.2f}") # 합격자 추출 및 출력 passed = [s for s in students if s['score'] >= 60] for s in sorted(passed, key=lambda x: x['score'], reverse=True): print(f"{s['name']}: {s['score']}") # JSON 저장 with open('passed.json', 'w') as f: json.dump(passed, f, indent=2)

20줄 미만
✅ 가장 간결하고 빠르게 작성 가능
✅ json, with, list comprehension 등 파이썬 고수준 문법의 힘

2. Java ( + Stream API)

import java.io.*; import java.nio.file.*; import java.util.*; import com.google.gson.*; import com.google.gson.reflect.TypeToken; class Student { String name; int score; } public class Main { public static void main(String[] args) throws IOException { Gson gson = new Gson(); Reader reader = Files.newBufferedReader(Paths.get("students.json")); List<Student> students = gson.fromJson(reader, new TypeToken<List<Student>>(){}.getType()); reader.close(); double avg = students.stream().mapToInt(s -> s.score).average().orElse(0); System.out.printf("Average: %.2f\n", avg); List<Student> passed = students.stream() .filter(s -> s.score >= 60) .sorted((a, b) -> b.score - a.score) .toList(); for (Student s : passed) System.out.println(s.name + ": " + s.score); Writer writer = Files.newBufferedWriter(Paths.get("passed.json")); gson.toJson(passed, writer); writer.close(); } }

30~35줄 이상 + import 필요
❗ 클래스 정의 + 파일 처리 + JSON 파싱 = 매우 장황
❗ 외부 라이브러리 (Gson 등) 필요

3. Kotlin (자바보다 간결한 JVM 언어)

import com.google.gson.Gson import com.google.gson.reflect.TypeToken import java.io.File data class Student(val name: String, val score: Int) fun main() { val gson = Gson() val json = File("students.json").readText() val type = : TypeToken<List<Student>>() {}.type val students: List<Student> = gson.fromJson(json, type) val avg = students.map { it.score }.average() println("Average: %.2f".format(avg)) val passed = students.filter { it.score >= 60 }.sortedByDescending { it.score } passed.forEach { println("${it.name}: ${it.score}") } File("passed.json").writeText(gson.toJson(passed)) }

20줄 정도
✅ Java보다 훨씬 간결
✅ 함수형 스타일 + 타입추론 + data class의 힘
❗ Gson 등은 여전히 필요

요약 비교

항목PythonJavaKotlin총 줄 수약 15~18줄약 35줄약 20줄JSON 파싱표준 jsonGson (외부)Gson (외부)데이터 구조dictclassdata class컬렉션 처리list comprehensionStream APIcollection 함수 (map, filter)가독성⭐ 최고❌ 장황⭐ 좋음실행 환경CPython만 있으면 됨JVM + 의존JVM + 의존

✅ 결론

기준추천 언어가장 짧은 코드Python가독성과 실용성 균형Kotlin정석적인 산업 스타일Java (but 길다)

참고

입력 JSON 예시 (students.json):

[ {"name": "Alice", "score": 80}, {"name": "Bob", "score": 55}, {"name": "Charlie", "score": 90} ]

원하시면 입력 GUI 추가, SQLite 저장, REST API로 바꾸기, 비동기 버전 등으로 비교 확장도 가능합니다.
다음 단계로 어떤 걸 보고 싶으세요?


"도둑은 집을 떠나며 주인을 욕한다" - 러시아 속담
송대관-해뜰날
https://youtu.be/DUsVXmywSCk

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 스타보다 주목 받는 것 같은 반려동물은? 운영자 25/10/20 - -
2870749 C# bool형 대소문자 [3] ㅇㅇ갤로그로 이동합니다. 07.09 139 0
2870748 ㅆㅇㅆ [1] 발명도둑잡기(39.7) 07.09 110 0
2870747 생일 끝나기 24분전 [2] ㅆㅇㅆ(124.216) 07.09 108 0
2870746 일본거주 10년차 외노자 월급, 상여 프로외노자갤로그로 이동합니다. 07.09 167 1
2870745 패션 개발자인 나야 ㅇㅂㅇ [1] 익명의따당이갤로그로 이동합니다. 07.09 141 0
2870744 도스 GUI 모음 발명도둑잡기(39.7) 07.09 93 0
2870743 문내립니다 [5] 개멍청한유라갤로그로 이동합니다. 07.09 115 0
2870742 카카오톡에 있는 이상한 기능 [2] 발명도둑잡기(39.7) 07.09 122 0
2870741 ai성능 날이갈수록 개박살나는거같은데 공기역학갤로그로 이동합니다. 07.09 137 0
2870740 오늘 쓰레기버리는데 갑자기 공무원들이 잡아세우더라 뒷통수한방(1.213) 07.09 79 0
2870739 저거 슼유동 진짜 냥덩이 인갑네 말투 비슷해서 그런갑다했었는데 [2] ㅆㅇㅆ(124.216) 07.09 101 0
2870738 고용24에다가 구직 신청 넣었다 [2] ㅇㅇ(118.235) 07.09 154 0
2870737 다시 프갤 들어옴 [4] ㅇㅇ(118.235) 07.09 115 0
2870733 GPT 임마 이거 내 프로젝트는 완성못하고 남의 외주만 완성한다고 ㅆㅇㅆ(124.216) 07.09 97 0
2870732 아래 문구 gpt에게 붙여넣은 결과 [2] ㅆㅇㅆ(124.216) 07.09 145 0
2870731 gpt에 이거 복붙해봐 신세계임 [1] 프갤러(210.99) 07.09 136 0
2870730 지금 프로그래밍 언어 배우는거 어떻게 생각해? [2] 프갤러(119.192) 07.09 120 0
2870728 전문학교 나온사람잇음?? [2] 프갤러(211.235) 07.09 97 0
2870725 프갤 ㅈ망했규나 [5] 조루디(110.35) 07.09 150 0
2870724 더워 조루디(110.35) 07.09 77 0
2870722 자주국방 시작하는 이재명 [12] 야옹아저씨갤로그로 이동합니다. 07.09 767 7
2870720 외케 취업 어려움 [2] 무관갤로그로 이동합니다. 07.09 294 2
2870719 Nginx Proxy Manager 질문이요 ㅠ [3] 프갤러(1.236) 07.09 276 0
2870717 코드주면 알아서 포트폴리오 짜주는 그런거 없나 ㅇㅇ(223.38) 07.09 76 0
2870715 모든소스 짜는걸 gpt한테 넘긴다.. [1] ㅇㅇ(175.197) 07.09 90 0
2870714 멍퀴벌레님 깝치지 마세양❤+ 나님 삼대 5백 출신이에양⭐+ [2] ♥냥덩이♥갤로그로 이동합니다. 07.09 95 0
2870713 민생지원쿠폰 스위치 1,2 또는 데이터복구 업체에 하드 스마트폰 맡기기 넥도리아(121.139) 07.09 68 0
2870712 ❤✨☀⭐나님 시작합니당⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 07.09 70 0
2870711 아 ㄹㅇ 개피곤하넹 [1] ♥냥덩이♥갤로그로 이동합니다. 07.09 91 0
2870710 초Ai 스카이넷 냥덩❤ [1] ♥냥덩이♥갤로그로 이동합니다. 07.09 91 0
2870706 오늘 생일인데 아직도 버그 수정중 [7] ㅆㅇㅆ(124.216) 07.09 108 0
2870705 솔직히 회사 밥 먹이는 개발자 몇이나 된다고 [3] 프갤러(106.101) 07.09 110 0
2870703 나님 피궁피궁.. ♥냥덩이♥갤로그로 이동합니다. 07.09 61 0
2870702 근디 나 Vue는 공부 안했고 Solid는 공부했는데 왜 Solid는 [2] ㅆㅇㅆ(124.216) 07.09 120 0
2870701 흠.. 빨라야 10월인강간.. ♥냥덩이♥갤로그로 이동합니다. 07.09 67 0
2870700 기술스택 생각해서 리액트 썼는데 후회됨 [8] 거북이속이거북갤로그로 이동합니다. 07.09 180 0
2870699 어쨌건 신문 다 읽었고 아직도 디버깅중 [4] ㅆㅇㅆ(124.216) 07.09 91 0
2870697 보통 인터넷 방송 보는 애들은 통계적으로 자존감이 낮은 편이니까 [3] ㅆㅇㅆ(124.216) 07.09 105 1
2870695 굴단인가 뭔가 무급노동 착취 논란봤는데 왜저런지 알겠네 ㅆㅇㅆ(124.216) 07.09 122 2
2870694 뉴비 언어 동시에 배우면 헷갈림? [5] ㅇㅇ갤로그로 이동합니다. 07.09 108 0
2870693 피궁하넹.. [1] ♥냥덩이♥갤로그로 이동합니다. 07.09 66 0
2870691 AI병목 현상은 뭐 다른 프로그래머들도 다 있어서 AI로 다 못하지 ㅆㅇㅆ(124.216) 07.09 89 0
2870690 'AI 부정론자를 패는 나' ㅇㅇ(223.38) 07.09 86 0
2870689 GPT랑 gemini 조련 중 [1] 아스카영원히사랑해갤로그로 이동합니다. 07.09 107 0
2870688 클로드도 코드좀 치지 않음? [3] 프갤러(175.208) 07.09 176 0
2870684 하 씨발 1차 납품했는데 버그 원인을 못찾겠어 [5] ㅆㅇㅆ(124.216) 07.09 116 0
2870682 정좌불능증 [3] 재현갤로그로 이동합니다. 07.09 102 0
2870680 덥다 [3] 루도그담당(211.235) 07.09 85 0
2870672 코드 가장 잘 짜는 AI 뭐냐? [12] 아스카영원히사랑해갤로그로 이동합니다. 07.09 238 0
2870671 종종 끌올되는 픎 자컨팀 빼앗겼다는 날조선동 ㅇㅇ(110.70) 07.09 92 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2