#자바

정희정희· 2년

질문Frida 후킹 관련

Frida를 통하여 com.test.test 클래스의 test() 함수를 후킹할 때 해당 함수를 호출한 클래스를 출력하는 방법이 있을까요?
234
1
0
무린
무린·2023-08-08
Frida를 사용하여 특정 함수를 후킹하고 해당 함수를 호출한 클래스의 정보를 출력하는 것이 가능합니다. 다음은 Java의 com.test.test 클래스의 test() 함수를 후킹하고, 해당 함수를 호출한 클래스의 정보를 출력하는 예시 스크립트입니다. Java.perform(function() { var testClass = Java.use('c...
yj23124yj23124· 3년

질문안드로이드 뷰가 inflate 되지 않습니다.

layout(.xml) 파일에서 몇 가지 수정하는데 애뮬레이터나 핸드폰 연결해서 적용해봤는데 변경사항이 저장이 안됐습니다. 그래서 다른 코드가 잘못됐나? 하고 지우고 지우다 그냥 딱 기본 코드만 남겨놓고 변경했는데도 여전히 변화가 없습니다.   사진으로 보면 무슨 말인지 확실히 알 수 있습니다. 왼쪽은 제가 원하는 결과물이고 오른쪽은 애뮬레이터에 표시되는 화면입니다.    그리고 왼쪽과 같이 layout(.xml)파일을 수정하고 애뮬레이터 terminate 시키고 다시 실행시킨게 오른쪽 사진입니다.  동작을 안합니다..   class EditProfileActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_edit_profile) } } 위의 코드는 해당 코틀린 코드입니다. 가장 기본적인 코드만 남겼는데도 위와 같이 문제가 일어납니다.   해당 파일을 지우고 다시 만드는 방법도 있겠지만, 이 layout 말고도 다른 곳에서도 위와 같은 문제가 발생해서 가능하다면 이유를 알아서 삭제하지 않고 해결하고 싶습니다. 왜 이런 문제가 발생하는지 아시는 분 계실까요?
1.5K
2
1
0
무린
무린·2022-05-18
안드로이드 스튜디오에서 File> Invalid cache/Restart > Invalidate and Restart 를 실행해보시기 바랍니다.
yj23124yj23124· 3년

질문안드로이드 에뮬레이터에 따라 오류가 발생합니다

상대적으로 예전 버전인 Nexus 5X API 27로 할 때는 viewpager의 imageView가 잘 나오는데, Pixel 4 API 31 버전 애뮬레이터로 실행했을 땐 다른 건 잘 나오는데 viewpager의 imageView가 안나옵니다.. 아래의 내용은 Logcat에서 Error인 부분을 구글링해봐도 무슨 말인지 모르겠습니다ㅠㅠ 혹시 짐작 가시는 부분이 있을까요??   2022-04-13 13:55:24.260 409-409/? E/BpTransactionCompletedListener: Failed to transact (-32) 2022-04-13 13:55:25.404 448-466/? E/installd: Couldn't opendir /data/app/vmdl467636503.tmp: No such file or directory 2022-04-13 13:55:25.404 448-466/? E/installd: Failed to delete /data/app/vmdl467636503.tmp: No such file or directory 2022-04-13 13:55:25.985 1361-1361/? E/HwDetectorWithState: a: 3 2022-04-13 13:55:26.003 571-625/? E/VerityUtils: Failed to measure fs-verity, errno 1: /data/app/~~YZS7Rea2DoNg_giQyyGNkg==/com.instagram-oNZdfjGSAub8V764Q231DA==/base.apk 2022-04-13 13:55:26.141 571-625/? E/VerityUtils: Failed to measure fs-verity, errno 1: /data/app/~~YZS7Rea2DoNg_giQyyGNkg==/com.instagram-oNZdfjGSAub8V764Q231DA==/base.apk 2022-04-13 13:55:27.801 409-431/? E/HWComposer: getSupportedContentTypes: getSupportedContentTypes failed for display 4619827259835644672: Unsupported (8) 2022-04-13 13:56:47.808 357-357/? E/[email protected]: Failed to getEnergyData 2022-04-13 13:57:13.010 918-918/? E/MmTelFeatureConn [0]: ImsRegistrationCallbackAdapter: ImsRegistration is null  
5.3K
2
1
0
무린
무린·2022-04-23
안드로이드 SDK 버전에 따라 이미지를 가져오는 방식이 다를 수 있습니다. 예를 들면 Bitmap 이미지의 경우 아래와 같이 구분이 필요합니다. fun Uri.getCapturedImage(context: Context): Bitmap? { if (Build.VERSION.SDK_INT >= Build.VERSION_CODE...
꿉이꿉이· 4년

질문[JAVA] 리스트를 그룹핑해서 맵으로 변환할때 질문드립니다.

 리스트 그룹화해서 맵으로 변환하는 건 잘 되는데요... 맵 key가 String이 아닌 DTO 형태로 받고 싶은데 어떻게 해야할지 모르겠습니다.!! ㅠㅠㅠ 선배님들 도와주세요!! ㅠㅠ  [현재] Map<String, List<MenuDto>> menuList = list.stream().collect(Collectors.groupingBy(MenuDto::getParentMenu));   [ 원하는 결과 ]아래처럼 사용할 수 없을까요??? ㅠ Map< MenuDto, List<MenuDto>> = ....   toMap 이용해보고 여러가지 해보고 있는데 잘 안됩니다. ㅠㅠ Map< MenuDto, List<MenuDto>> = menuList = list.stream().collect(Collectors.toMap(Function.identity(),Collectors.groupingBy(MenuDto::getParentMenu)); . . . Map<MenuDto, List<MenuDto>> postsPerType = list.stream() .collect(Collectors.groupingBy(MenuDto::getParentMenu, () -> new Map<>(MenuDto.class), Collectors.toList()));  
1.3K
0
dfkekfldlsldmfmdfkekfldlsldmfm· 4년

질문java 국비지원 교육 듣기 전 질문이요!

6개월 정도 진행하는 AWS 클라우드를 활용한 java 교육을 들으려고 하는 학생입니다.   교육 시작까지 약 두 달 정도 남아서 그 전에 공부를 하고 들어가려고하는데   선행하면 좋은 과목이라던지, 들어볼만한 강좌가 있을까요?   저는 비전공자이고 자바 교육 한달? 조금 안되게 들어봤습니다 ㅠ   추천해주시면 감사하겠습니당 
1.1K
0
미숫게이너미숫게이너· 4년

질문백엔드 개발자(spring)를 희망하는 학생입니다..코테를 무슨언어로 준비할지 모르겠네요..

안녕하세요 저는 스프링으로 백엔드 개발자가 되고 싶은 학생입니다.  제가 요즘 백엔드 공부랑 같이 코테준비도 할려는데 이게 무슨 언어로 해야할지 잘모르겠네요.. 어떤 사람들은 스프링으로 할니까 자바로 진득하게 코테준비하는게 좋다고 말하고 어떤사람들은 그래도 코테 준비는 파이썬으로 하는게 좋다고 하네요... 누구 말을 들어야 할지 모르겠어요.. 파이썬이랑 자바실력은 둘다 고만고만한 수준입니다. 개인적으로는 파이썬으로 코테준비하는게 더편한데..   제가 생각하는 자바의 장점은 자바에 조금더 익숙해질수있다는 것이고 파이썬의 장점은 자바에 비해 빠르고 간편하게 코테 준비를 할수있음 여러분은 어떻게 생각하시나요?   요약하자면 1. 백엔드 개발자(spring)가 되고 싶음 2. 코테준비도중 무슨언어를 해야 좋을지 모르겠음. 각 언어의 장단점이 있다고 생각. 자바 - 자바에 대해 조금더 익숙해질수있음, 한가지 언어만 진득하게 해도 부족함. 파이썬 - 코테를 조금더 쉽고 간단하게 직관적으로 준비할수있음.  
2.7K
1
0
sonaki84
sonaki84·2021-09-17
저라면 본인이 빠르고 익숙하게 준비할 수 있는 것을 추천하겠습니다. 파이썬에 익숙하다면 파이썬으로 코테 준비를 하시면 될 것 같습니다. 그렇게해서 코테에 익숙해지신 후에 자바쪽을 보시면 좀 더 수월하게 볼 수 있기 때문에 효율적일 것 같습니다.
PaulPaul· 4년

질문Automation 프로그램 python/java?

안녕하세요, 제가 personal project 로 쇼핑 봇을 만들려고 그러는데, python 하고 java 중에 automation 만들기 뭐가 좋으나요? 두언어다 초보자 급입니다... Youtube 에서 찾아봐서 Java Selenium 에서 ChromeDriver 로 한번 automation program 만들어서 로그인 하려다가 봇 인증  걸려서 포기한적 이 있습니다. 혹시 다른 방법으로 automation program 을 만들수 있나요? 이런 비슷한 Web Automation program 만드는법 아시는 분있으시면 조언 부탁드립니다!! 감사합니다!    
1.2K
0
사용자 프로필· 4년

질문자바 삼각형의 합

코드 열심히 짜보았는데 테스트부분에서 다 틀리네요 어디가 틀린지 봐주시면 감사하겠습니다. 도와주세요
648
1
0
사용자 프로필· 4년

질문자바 주식문제

자바 주식관련해서 최저가에 구매해 최고가에 판매하려고 하는 코드를 작성하려는 것 같습니다. 사야되는 지점과 팔아야되는 지점을 배열로 따로 생성 추가해서 하는건지 시작부터 난관에 봉착했습니다. 코드 잘 다루시는 분들 도와주세요
878
1
0
사용자 프로필· 4년

질문자바 공간채우기 문제

상자들을 채우는 문제인데 최소값으로 더해서 배열을 새로 만들어야할지 어떻게 시작을 해야할지부터 너무 막막하고 물어볼 사람이 없어서 올려봐요 도와주세요.
755
1
0
사용자 프로필· 4년

질문자바 배열 문제 질문

도와주세요 열심히 고민해봐도 해결이 안돼요 i+1로 value 값을 만들어서 비교를 해서 하려고 해도 그렇게 되면 index 범위를 넘어가게 되어서 해결을 못하고 다른 방법으로 해도 해결이 안되는데 조금만 도와주세요
950
1
0
무린무린· 4년

왜 자바 서버 개발자들은 코틀린을 채택하지 않는가

Why are Java server-side developers not adopting Kotlin? The Java server-side community hasn’t adopted Kotlin heavily yet, and the resistance doesn’t always arise from actual language merits. medium.com 오랜 자바 개발자로서 수년간 코틀린을 사용하고 그것을 서버에 적용해보면서 코틀린에 재미를 느낀 개발자가 쓴 글인데요 자바 서버 개발자들이 코틀린으로 서버 개발을 하지 않는 이유에 대해 본인의 관점에서 정리한 글입니다. 다시 말해 코틀린을 서버에 적용해도 좋다는 입장에서 항목별로 정리한 글 같습니다. 그 내용을 요약해 보았습니다. (물론 블로그의 내용일 뿐 제 의견은 아닙니다^^) --------------------------------------   "새로운 언어를 배울 시간이 없다" 새로운 학습의 시간이 필요하긴 하지만 좋은 소프트웨어는 시간 투자가 필요하며 숙련된 자바 개발자는 금방 학습할 수 있다.   "자바는 릴리즈할 때마다 좋아지고 있다" 자바도 릴리즈할 때마다 좋아지고 있는 것은 사실이지만 생산성에는 코틀린에 뒤쳐지고 있다   "자바 개발자인 것이 행복하다" 프로그래머는 하나의 언어에만 머무르는 것은 좋지 않다. 자바 개발자는 코틀린을 사용함으로써 뒤쳐지지 않을 수 있다.   "코틀린은 미래를 알 수 없는 언어이다" 2017년부터 나왔던 이슈이지만 구글은 그 해 안드로이드에 코틀린을 채택했다. Spring과 Micronaut같은 인기 프레임워크에서도 점점 수용하고 있다.   "이클립스를 사용하고 있는데 InteliJ로 전환하고 싶지 않다" 이클립스의 코틀린 환경이 JetBrains IDEA와 일치하지 않을 수 있다. JetBrains의 비지니스 모델에는 개발자 도구 판매도 있어서 쉽게 바뀔 것 같지 않긴 하다. 코틀린이 이클립스를 지원할 수 밖에 없는 상황이 오는 것도 좋긴 하지만 InteliJ가 자바 개발 용도로만 볼 때 더 나은 IDE이므로 전향하는 것도 나쁘지 않다.   "코틀린 개발자는 너무 비싸고 구하기 어렵다" 코틀린 개발자가 자바 개발자보다는 약간 비싼 것 처럼 보이기는 하다. 팀에서 코틀린을 우선으로 두는 것 자체가 채용 시 자바 개발자들이 새로운 것을 배울 수 있는 기회로 보일 수도 있다.   "코틀린은 너무 복잡하다" 코틀린은 사용성과 고급 기능 사이에서 균형을 유지하는 것이 목적인 언어이다. 코틀린을 자바 언어처럼 사용하려고하면 어려워질 수 있다.   "하나의 코드베이스에서 두 가지 언어를 사용하는 것은 혼란스럽다" 두 언어가 공존하는 것을 애초부터 염두해 두면 그렇게 혼란스럽지 않다. 자바가 남아있다고 코드가 안 돌아가는 것은 아니므로 코틀린을 우선으로 해서 바꿔가면 된다.   "우리는 자바가 더 편하다" 보통은 시간 부족으로 꺼리게 된다. 직무와 연관시키는 학습법을 통해 이 문제를 해결할 수 있다.   "코틀린이 가져오는 이점을 모르겠다" 몇몇 자바 개발자들은 코틀린을 시도하기 전에 시도하지 않을 이유부터 찾곤 한다.   결론적으로, 변화에 대한 저항은 있을 수 있지만 더 많은 자바 개발자들이 기회가 있을 때 코틀린을 접해보길 바란다. -------------------------------  
6.1K
1
1
0
닥터핸
닥터핸·2021-03-08
코틀린을 다시 보게 되네요
사용자 프로필· 5년

질문백엔드 개발자를 꿈꾸는 비전공자입니다. 처음 시작으로 자바 VS 파이썬 뭐가 좋을까요?

안녕하세요. 백엔드 개발자를 꿈꾸는 비전공 대학생입니다. 전공은 기계입니다. 이번에 부트캠프를 다녀볼까 고민중인데요. JAVA를 위주로 가르치는 곳(패xxxxx)이 있고, Python을 위주로 가르치는 곳(위xx)이 있더라구요. 유튜브도 보고, 검색도 해보고 여기저기 알아보니 python이 요즘 세계적으로 굉장히 핫하다고 하는데, 한국 기업들은 대부분 JAVA를 사용한다고 하더라구요. (채용글도 여러개 봤습니다) 어떤 걸 배워야할지(어느 곳을 다녀야 할지) 굉장히 고민되는데요. 고수님들 의견 주시면 감사하겠습니다.
1.2K
0

질문실시간 이벤트 처리 방법(Esper 사용법)

java 에서 실시간으로 데이터를 입력하는 내용을 만들기 위해 알아보았습니다만... 방법을 잘 몰라서 ; 질문을 드리고자 합니다.   1.실시간 이벤트를 사용 하는 방법은 spark streaming, Esper 이 있는 것으로 알고 있는데요. 이 이외에 다른 쉬운 방법이 있나요? 2.Esper 에서 실시간 이벤트 사용 방법을 모르겠습니다. 본 사이트 : http://www.espertech.com/  설명서 : http://www.espertech.com/esper/esper-documentation/  설명 사이트 http://www.notforme.kr/archives/579  http://javacan.tistory.com/entry/Esper-Beginner-1-Quick-Start  http://sungsoo.github.io/2014/01/02/overview-of-esper.html  gitHub 적용 사이트 https://github.com/not-for-me/EsperStudyProject  https://github.com/espertechinc/esper  EPL 실험 해볼 수 있는 사이트 http://esper-epl-tryout.appspot.com/epltryout/mainform.html  를 참조해서 만들어 보았습니다. public void EesperExample2(UserInfoDto udto) { Configuration config = new Configuration(); config.addEventType("SearchYoutubeVo", SearchYoutubeVo.class.getName()); EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider(config);   String epl = "select * , count(*) from SearchYoutubeVo.win:time(5 minutes)"; List<SearchYoutubeVo> vo; EPStatement statement = epService.getEPAdministrator().createEPL(epl); ExampleListener example = new ExampleListener(); statement.addListener(example); int EventCreateNum = 5;   //for(int i = 0; i < EventCreateNum; i++ ){ try { vo = youtubeSearchService.searchYoutube(udto); } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } //} }   public class ExampleListener implements UpdateListener { public void update(EventBean[] newEvents, EventBean[] oldEvents) { EventBean event = newEvents[0]; System.out.println("Avg Rating of NFM = " + event.get("viewCount") + " Total Count: " + event.get("videoId")); System.out.println(event.get("count(*)")); } } &#39;vo = youtubeSearchService.searchYoutube(udto);&#39; 는  youtube 키워드를 입력해서 이를 가지고오는 내용입니다. &#39;UserInfoDto udto&#39; 유저의 관련된 정보를 가지고 오는 것입니다. 그런데 제가 하고 싶은 것은 처음에  youtubeSearchService.searchYoutube(udto); 사용해서 데이터를 가조고온 후, 5분 간격으로 데이터를 가지고 오고 싶은 것인데.... 방법을 전혀 모르겠습니다.   그런데 ExampleListener  는 전혀 실행되지 않고 있습니다.
1.6K
1
1
0
쵸파
쵸파·2019-01-16
굿
겍코겍코· 7년

[근조] 오라클, 인터넷을 죽이다 |

[근조] 오라클, 인터넷을 죽이다 - Byline Network 오라클과 구글의 자바 API 저작권 전쟁에서 미국 연방순회항소법원이 끝내 오라클의 손을 들어줬다.... byline.network 오라클과 구글의 자바 API 저작권 전쟁에서 미국 연방순회항소법원이 끝내 오라클의 손을 들어줬다. 이번 법정 다툼에서 패배한 구글은 오라클에 수조 원을 배상해야할 지도 모른다. 그러거나말거나. 돈 많은 구글을 걱정할 필요는 없다. 중요한 것은 이 판결이 인터넷 산업, 나아가 IT산업에 어떤 영향을 미칠 것인가 하는 점이다. 언론은 이번 분쟁을 '자바 전쟁'이라고 표현한다. 구글이 자바의 특허권과 저작권을 침해했다는 오라클의 주장으로 시작된 분쟁이기 때문이다. 그러나 이번 자바 법적 분쟁은 자바 전쟁이라고 불리면 안된다. 이는 문제를 축소시키는 표현이다. 이 재판의 핵심은 자바가 아니다. 이번 재판은 자바가 아니라 API에 대한 것이었다. API에 저작권을 인정하느냐마느냐, 저작권이 있다고 하더라도 공정사용 대상이냐 아니냐가 핵심이다. 공정사용이란 저작권이 있는 저작물이라도 허가없이 이용할 수 있는 권리를 말한다. API란 프로그램이 서로 통신할 수 있는 규격이다. 프로그래밍 언어에서는 일종의 명령처럼 이용된다. 최종 저작물을 만들기 위한 과정에 사용되는 도구가 API인데, 여기에 저작권을 부여한다면 자유로운 창작이 방해를 받을 수밖에 없다. 전자프론티어재단은 이번 분쟁에 대해 "API는 일반적으로 프로그램이 서로 통신하기 위한 것으로 프로그램을 구현하는 코드와는 다르다"면서 "API를 저작권으로 취급하는 것은 상호운용성과 혁신에 매우 부정적인 영향을 미칠 것"이라고 논평한 바 있다. IT의 발전은 API를 개선하면서 이뤄졌다. 현존하는 거의 모든 프로그램과 온라인 서비스는 개방된 API를 기반으로 만들어졌다고 해도 과언이 아니다. 예를 들어 지구상 거의 모든 온라인 기업이 사용하는 운영체제인 리눅스를 생각해보자. 리눅스는 어날 갑자기 하늘에서 뚝 떨어진 것일까? 리누스 토발즈라는 천재가 하얀 백지 위에 하나씩 코드를 써서 갑자기 '짠' 하고 세상에 내보인 것일까? 아니다. 리눅스는 유닉스를 기반으로 만들어졌다. 리눅스가 유닉스 기반으로 만들여졌다는 것은..
1.2K
2
0
다메다메· 7년

프로그램과 그 구조

안녕하세요. 이제 Java 초보자 다메입니다.이번 챕터는 프로그램과 그 구조에 대한 내용입니다.Java라는 프로그래밍 언어에 특정되지 않는 개념이며추후 진행하는 과정에서 필요하다 판단되어 작성합니다.이미 해당 지식을 보유하고 있다면 다음 챕터로 넘어가셔도 좋습니다.시작합니다.1. 프로그램이란?프로그램은 "컴퓨터에 처리시키는 작업의 순서를 명령어로 작성하는 것" 이라고 해요.(출처 : NAVER 컴퓨터인터넷IT용어대사전)컴퓨터가 동작을 하려면 명령어가 필요합니다. 예를 한번 들어 볼까요?숫자 하나를 입력했을 때 해당하는 수가 짝수인지 홀수인지확인하는 프로그램을 의사코드(*)로 표현해 보자면Line 1 숫자를 입력한다.Line 2 입력받은 숫자를 2로 나눈다.Line 3 이 때 나머지가 0이면 숫자는 짝수이다.Line 4 그 외의 경우(2로 나눴을 때 나머지가 있는 경우)는 홀수이다.정도가 됩니다. 우리는 한국인이기 때문에 한글로 표현해 보았어요.사람을 예시로 한번 들어볼까요?사람도 어떤 수가 짝수인지 홀수인지 판단하려면 다음 절차와 같이 수행하겠죠?Line 1 수를 정한다.Line 2 수를 2로 나눠본다.Line 3 나눴을 때 나머지가 0이면 짝수라고 판단한다.Line 4 나눴을 때 나머지가 0이 아니면 판단한다.저 한 줄이 명령어이고, 보통 명령어 하나에 한 동작을 수행합니다.추후에 명령어를 묶어 모듈(*)(=클래스, 함수 또는 메소드)라는 것을 만들 수 있는데그 또한 거시적으로 본다면 모듈 하나에 정해진 한 동작을 수행하게 됩니다.챕터 1에서 설명 드렸던 절차 지향 언어에서는 "모듈 = 함수"를 의미하여모듈과 함수가 일대일로 대응하지만, 객체 지향 언어에서는 구성에 따라일대일로 대응하지 않을 수 있습니다. 앞으로 자세히 알게 되실거에요.※ 이해를 돕기위한 예시ex1) x = 3(x/2)의 나머지 = 1따라서 x는 홀수이다.ex2) x = 4(x/2)의 나머지 = 0따라서 x는 짝수이다.* 의사코드 : 사람이 이해할 수 있는 언어로 프로그래밍 언어에 상관없이 알고리즘(*)을 표현해 놓은 것.* 알고리즘 : 어떤 문제를 해결하기 위한 절차, 방법, 명령어들의 집합.* 모듈 : 특성 또는 용도를 가지는 기능의 단위2.  프로그램의 구조 그림판으로 그려서 다소 조잡하다고 느끼실 수 있겠지만...대부분의 프로그램은 위와 같은 구조로 이루어져 있습니다.어떠한 프로그램에서 메인 함수(또는 메소드)는 반드시 단 하나만 존재하며ModuleN(N = 1,2,3...)은 고유한 모듈을 의미합니다.즉, 메인 함수(메소드)에서 알고리즘에 따라 필요한 모듈을 호출하는 것이지요.이해가 좀 되셨으려나 모르겠습니다. 처음 접한다면 조금 어려울 수도 있을 것 같아요.이 항목에서 가장 중요한 점은 위에 강조한 부분입니다. 꼭 기억해두세요!!3. 우수한 구조의 프로그램프로그램의 기능과는 상관없이 구조적으로 우수한 프로그램의 특징은 다음과 같습니다.1) 모듈화어떤 큰 문제를 해결할 때 필요한 기능들을 가능한 잘게 쪼개어서 나누는 것을 모듈화라고 합니다.무턱대고 큰 프로그램을 만들려고 하기 보다는 가장 단순한 혹은 필수적인 기능부터 구현한다면 어렵지 않습니다.논리적으로 얘기하자면 가장 작은 범위에서 부터 필요조건을 만족시켜 나가면 됩니다.2) 가독성제 3자가 읽었을 때도 어느정도 프로그램의 흐름을 알 수 있다면 이는 가독성이 좋은 프로그램이라고 얘기할 수 있습니다.가독성을 향상시키는 방법 중 가장 간단한 것은 모듈의 이름을 잘 짓는 것입니다.예를들어 입력을 하는 모듈의 이름은 Input, 출력을 하는 모듈의 이름은 Output 이라고 짓게 된다면,처음 보는 사람도 Input과 Output을 보곤 "아! 각각 입력과 출력 기능을 담당하나 보다!" 라고 생각할 겁니다.이렇게 가독성이 좋은 프로그램은 유지, 보수, 확장이 쉬워집니다!해당하는 모듈을 찾아서 수정하기가 쉬워지기 때문이죠.따라서 모듈화를 할 때 가독성을 고려한다면 좋겠죠?3) 짧은 메인 함수(또는 메소드)위의 1)을 만족시킨 프로그램은 2)를 만족하기 쉬워집니다.일반적으로 1), 2)를 동시에 만족시킨다면 구조적으로 좋은 프로그램이라고 말 할 수 있습니다.메인문에 남아있는 것은 가독성을 고려한 모듈들이기 때문입니다.이번 챕터는 이것으로 마칩니다.다음 챕터부터는 본격적으로 실습을 통해 자바에 대해 살펴보도록 하겠습니다.아무래도 아주 기본적인 구조(기본 자료형..?)부터 시작하게 될 것 같아요.긴 글 읽어주셔서 감사합니다!
1.7K
4
0
다메다메· 7년

Java 환경구축 for Windows

안녕하세요. 이제 Java 초보자 다메입니다.이번 챕터는 Windows에서Java로 개발을 하기 위해 필요한 환경을 구축하는 내용입니다.본인이 이미 환경을 구축한 상황이라면 보다 상위 과정의 내용을,Mac OS X 라면 해당하는 포스트를 참고해주시길 바랍니다.1. Java 환경구축Java는 지난 포스트에서"객체 지향 프로그래밍 언어 중 하나로 다양한 장점을 지니고 있는 언어" 라고설명을 드렸어요. 그렇다면 Java를 사용하기 위해서는 어떤 환경이 필요할까요?Java를 사용하려면 우선 Java를 설치해야겠죠? 그럼 Java를 설치해 보도록 합시다.2. JDK, JRE, Java SE1) JREJRE(Java Runtime Environment)는 Java 실행 환경이라고 하며Java 언어로 개발된 소프트웨어를 실행하기 위해 필요한 플랫폼입니다.Java를 이용해 개발된 소프트웨어는 JVM과그 주변 소프트웨어(클래스 라이브러리 등)를 이용하여해석되는데, JRE에 포함이 되어 있습니다.2) JDKJDK(Java Development Kit : 자바 개발 도구)는 이름에서 알 수 있듯,Java를 이용한 개발 도구입니다.이 안에는 JRE, 컴파일러, 디버거, 응용프로그램 개발 도구 등이 포함됩니다.즉, JDK를 설치하면 JRE가 딸려옵니다.① 컴파일러컴파일러는 프로그래밍언어를 컴퓨터가 이해할 수 있는 언어로 바꾸어주는 역할을 합니다.컴파일러가 없다면 컴퓨터는 고급언어로 작성된 어떤 프로그래밍 언어도 이해하지 못해요.꼭 필요한 요소입니다.② 디버거디버거는 프로그램의 오류를 찾아내기 위한 소프트웨어 입니다.개발을 하다보면 내가 예상하지 못한 버그 혹은 오류가 발생하게 되는데, 이 때 사용하게 됩니다.3) Java SEJava SE(Java platform, Standard Edition)은 표준 Java 플랫폼입니다.표준은 정말 중요한데 Java의 장점인 이식, 호환성이 보존되려면모든 개발자가 같은 표준을 사용해야 합니다.따라서 제공하는 표준 플랫폼입니다. (표준에 큰 의의가 있어요!)간단하게는 이 안에 JDK + @가 있다고 생각하시면 편합니다. 그럼 Java를 이용하려면 Java SE를 설치하면 되겠죠?3. Java SE 설치위에서 결론으로 Java로 개발을 하기 위해서 Java SE를 설치하면 된다고 말씀 드렸어요.그럼 이제 Java SE를 설치해보도록 합시다.아래의 링크를 클릭 또는 복사 + 붙여넣기 해주세요.Java SE 공식 다운로드 : http://www.oracle.com/technetwork/java/javase/downloads/index.html 위와 같은 화면에서 탭 [Downloads] 클릭 - 화면 아래 [Java SE 8u161/8u162] 클릭 위와 같은 화면에서 버전 [Java SE Development Kit 8u161] 확인,[Accept License Agreement] 체크 후 Windows 환경(32/64 bit)에 맞게 다운로드저는 [Java SE 8u161] 버전을 받았습니다.[Java SE 8u162] = [Java SE 8u161] + [Bug fix] 라고 하네요.하지만 [Java SE 8u162] 버전에도 버그가 있을 수 있기에그냥 [Java SE 8u161] 버전으로....① 설치파일 실행② 아래와 같은 화면에서 [Next >] 버튼 클릭 ③ 아래와 같은 화면에서 [Next >] 버튼 클릭 ④ 아래와 같은 화면에서 [다음(N)>] 버튼 클릭 ※ 설치 위치는 변경해도 좋으나, 추후 경로 설정에 문제가 있을 수 있으므로 기본값으로 진행하시는 것을 권장합니다.⑤ 아래와 같은 화면에서 [Close] 버튼 클릭 이렇게 하면 Windows 에서 Java SE 설치 및 설정이 끝났습니다. 어려우셨나요?쉽게 설명한다고 했는데 혹시 막히는 부분이 있다면 댓글을 남겨주세요.이번것은 너무 쉬워서 아마 없을 것으로 예상합니다 :)자, 이제 Java SE를 설치 하였으니 Java를 이용할 수 있는 도구를 설치해 봅시다.4. IDE, 그리고 Eclipse1) IDEIDE(Intergrated Development Environment : 통합 개발 환경)가 뭔지 아시나요?IDE는 코드 편집기, 디버거, 컴파일러 등으로 구성되어 있는 소프트웨어로개발자가 소프트웨어를 개발하는 과정에 필요한 모든 작업을 "하나의 소프트웨어"에서처리할 수 있는 환경을 제공해줍니다. 만약에 여러분이 하나의 프로그램을 개발하는데 있어서 사용해야 하는 도구가각각의 프로그램으로 구동한다면 일단 창을 전환하는 것 부터가 문제겠죠?간단히 말해 엄청난 문명의 혜택이라고 생각하시면 됩니다. 편하다는거죠!2) Eclipse(이하, 이클립스)이클립스는 Java를 메인언어로 작성된 Java를 메인으로 하는 IDE 입니다.Java 말고 경우에 따라서는 다른 언어들도 개발이 가능합니다. 결론적으로 말씀드리자면 영어라서 조금 불편합니다.하지만 기능이 너무너무 강력해요. 프로그램이 일단 가볍습니다.또한 사용하는 사람이 많아서 Tool을 다루는데에 필요한 지식을 얻기가 쉬워요.아직 Java 개발에 있어서는 이클립스 만한게 없는것 같습니다.그럼 설치를 해보아야 겠죠? 그 전에 잠시 알아두어야 할 것이 있습니다.현재 이클립스의 최신 버전은 Oxygen입니다만, 우리가 다운로드 할 것은Neon 버전입니다. 아직까지 Oxygen의 안전성이 충분히 검증되지 않았기 때문에이전 버전인 Neon으로 사용하려고 합니다. 본인이 최신버전을 이용하고 싶다면Oxygen 버전을 다운로드 하시면 됩니다. ※ 링크는 올리나, 본문에서 추가로 다운로드 방법을 언급하진 않습니다.다음의 링크를 클릭 혹은 주소창에 복사, 붙여넣기 해주세요.Eclipse Neon 공식 다운로드 : https://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/neon3Eclipse Oxygen 공식 다운로드 : https://www.eclipse.org/downloads/① 아래의 화면에서 자신의 환경에 맞게 [Windows 32-bit 또는 Windows 64-bit] 클릭  ② 아래 화면에서 [Select Another Mirror] 클릭 ※ 다운로드 서버를 바꾸는 작업입니다. 일본에 거주하신다면 그냥 다운로드 받으시면 됩니다.③ 아래 화면에서 [Korea, Republic Of - KAIST] 또는 (카이스트 서버에서 다운로드)[Korea, Republic Of - Daum Kakao Corp.] 클릭 (다음 카카오 서버에서 다운로드) ④ 다운로드 받은 경로의 [eclipse-jee....] 압축파일 압축 해제 ⑤ 해당 경로 확인 후 하위 폴더 [eclipse]를 편한 곳으로 이동※ 저는 D드라이브로 이동 시키겠습니다. ⑥ 아래 화면과 같이 [eclipse] 폴더 안의 빨간 박스로 표시된 아이콘의 [eclipse] 실행 ⑧ 아래 화면에서 [OK] 버튼 클릭 ⑨ 우측 하단 [Always show ..... start up] 체크 해제 후 좌측 상단 [Welcome] 탭 닫기 이렇게 하면 Windows 에서 Eclipse 설치가 끝났습니다. 어려우셨나요?쉽게 설명한다고 했는데 혹시 막히는 부분이 있다면 댓글을 남겨주세요.이번것은 너무 쉬워서 아마 없을 것으로 예상합니다 :)프로그램을 설치했으면 올바르게 동작하는지 검증을 하는 절차가 필요하겠죠?다음 항목 5번과 같은 순서로 Java SE와 이클립스가 잘 설치 되어 동작하는지 확인해 봅시다.5. 테스트 해보기① [File] - [New] - [Other] 클릭 ② [Java Project] 선택 후 [Next >] 버튼 클릭 ③ Project name : [helloworld] 입력 후 [Finish] 버튼 클릭 ④ 생성된 프로젝트의 하위 폴더 [src] - [우클릭] - [New] - [Class] 선택 ⑤ 아래 화면과 같이 진행 ⑥ 아래 화면과 같이 생성된 [HelloworldMain.java] 를 더블클릭하여다음과 같이 입력 후 상단 빨간 박스로 표시된 [Run(실행)] 버튼 클릭 ⑦ 아래 화면과 같은 결과 [Hello World] 가 나타나는지 확인 어떻게 출력이 잘 나오셨나요?여담이지만 출력할 때 사용한 Hello World는 전 세계의 개발자들이IDE를 설치하고 테스트 할때 사용하는 문장입니다.혹시라도 중간에 막히거나 오류가 발생하는 부분이 있다면 댓글로 남겨주세요!다음 챕터는 프로그램과 그 구조에 대해 다뤄보도록 하겠습니다. 긴 글 읽어주셔서 감사합니다.
1.9K
1
0
다메다메· 7년

Java 환경구축 for Mac OS X

안녕하세요. 이제 Java 초보자 다메입니다.이번 챕터는 Mac OS X 에서Java로 개발을 하기 위해 필요한 환경을 구축하는 내용입니다.본인이 이미 환경을 구축한 상황이라면 보다 상위 과정의 내용을,Windows 라면 해당하는 포스트를 참고해주시길 바랍니다. 시작합니다.1. Java 환경구축Java는 지난 포스트에서 "객체 지향 프로그래밍 언어 중 하나로 다양한 장점을 지니고 있는 언어" 라고설명을 드렸어요. 그렇다면 Java를 사용하기 위해서는 어떤 환경이 필요할까요?Java를 사용하려면 우선 Java를 설치해야겠죠? 그럼 Java를 설치해 보도록 합시다.2. JDK, JRE, Java SE1) JREJRE(Java Runtime Environment)는 Java 실행 환경이라고 하며Java 언어로 개발된 소프트웨어를 실행하기 위해 필요한 플랫폼입니다.Java를 이용해 개발된 소프트웨어는 JVM과그 주변 소프트웨어(클래스 라이브러리 등)를 이용하여해석되는데, JRE에 포함이 되어 있습니다.2) JDKJDK(Java Development Kit : 자바 개발 도구)는 이름에서 알 수 있듯,Java를 이용한 개발 도구입니다.이 안에는 JRE, 컴파일러, 디버거, 응용프로그램 개발 도구 등이 포함됩니다.즉, JDK를 설치하면 JRE가 딸려옵니다.① 컴파일러컴파일러는 프로그래밍언어를 컴퓨터가 이해할 수 있는 언어로 바꾸어주는 역할을 합니다.컴파일러가 없다면 컴퓨터는 고급언어로 작성된 어떤 프로그래밍 언어도 이해하지 못해요.꼭 필요한 요소입니다.② 디버거디버거는 프로그램의 오류를 찾아내기 위한 소프트웨어 입니다.개발을 하다보면 내가 예상하지 못한 버그 혹은 오류가 발생하게 되는데,이 때 사용하게 됩니다.3) Java SEJava SE(Java platform, Standard Edition)은 표준 Java 플랫폼입니다.표준은 정말 중요한데 Java의 장점인 이식, 호환성이 보존되려면모든 개발자가 같은 표준을 사용해야 합니다.따라서 제공하는 표준 플랫폼입니다. (표준에 큰 의의가 있어요!)간단하게는 이 안에 JDK + @가 있다고 생각하시면 편합니다. 그럼 Java를 이용하려면 Java SE를 설치하면 되겠죠?3. Java SE 설치위에서 결론으로 Java로 개발을 하기 위해서Java SE를 설치하면 된다고 말씀 드렸어요.그럼 이제 Java SE를 설치해보도록 합시다.아래의 링크를 클릭 또는 복사 + 붙여넣기 해주세요.Java SE 공식 다운로드 : http://www.oracle.com/technetwork/java/javase/downloads/index.html 위와 같은 화면에서 탭 [Downloads] 클릭 - 화면 아래 [Java SE 8u161/8u162] 클릭 위와 같은 화면에서 버전 [Java SE Develpment Kit 8u161] 확인,[Accept License Agreement] 체크 후 MacOS에 맞게 다운로드.저는 [Java SE 8u161] 버전을 받았습니다.[Java SE 8u162] = [Java SE 8u161] + [Bug fix] 라고 하네요.하지만 [Java SE 8u162] 버전에도 버그가 있을 수 있기에그냥 [Java SE 8u161] 버전으로....① 설치파일 실행② 아래와 같은 화면에서 빨간 박스 안의 [JDK 8 Update 161.pkg] 아이콘 더블클릭 ③ 아래와 같은 화면에서 [계속] 버튼 클릭 ④ 아래와 같은 화면에서 [설치] 버튼 클릭 ⑤ 아래와 같은 화면에서 [닫기] 버튼 클릭 이렇게 하면 Mac OS X 에서 Java SE 설치 및 설정이 끝났습니다. 어려우셨나요? 쉽게 설명한다고 했는데 혹시 막히는 부분이 있다면 댓글을 남겨주세요.이번것은 너무 쉬워서 아마 없을 것으로 예상합니다 :)자, 이제 Java SE를 설치 하였으니 Java를 이용할 수 있는 도구를 설치해 봅시다.4. IDE, 그리고 Eclipse1) IDEIDE(Intergrated Development Environment : 통합 개발 환경)가 뭔지 아시나요?IDE는 코드 편집기, 디버거, 컴파일러 등으로 구성되어 있는 소프트웨어로개발자가 소프트웨어를 개발하는 과정에 필요한 모든 작업을 "하나의 소프트웨어"에서처리할 수 있는 환경을 제공해줍니다. 만약에 여러분이 하나의 프로그램을 개발하는데 있어서 사용해야 하는 도구가각각의 프로그램으로 구동한다면 일단 창을 전환하는 것 부터가 문제겠죠?간단히 말해 엄청난 문명의 혜택이라고 생각하시면 됩니다. 편하다는거죠!2) Eclipse(이하, 이클립스)이클립스는 Java를 메인언어로 작성된 Java를 메인으로 하는 IDE 입니다.Java 말고 경우에 따라서는 다른 언어들도 개발이 가능합니다. 결론적으로 말씀드리자면 영어라서 조금 불편합니다.하지만 기능이 너무너무 강력해요. 프로그램이 일단 가볍습니다.또한 사용하는 사람이 많아서 Tool을 다루는데에 필요한 지식을 얻기가 쉬워요.아직 Java 개발에 있어서는 이클립스 만한게 없는것 같습니다.그럼 설치를 해보아야 겠죠? 그 전에 잠시 알아두어야 할 것이 있습니다.현재 이클립스의 최신 버전은 Oxygen입니다만, 우리가 다운로드 할 것은Neon 버전입니다. 아직까지 Oxygen의 안전성이 충분히 검증되지 않았기 때문에이전 버전인 Neon으로 사용하려고 합니다. 본인이 최신버전을 이용하고 싶다면Oxygen 버전을 다운로드 하시면 됩니다. ※ 링크는 올리나, 본문에서 추가로 다운로드 방법을 언급하진 않습니다.다음의 링크를 클릭 혹은 주소창에 복사, 붙여넣기 해주세요.Eclipse Neon 공식 다운로드 : https://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/neon3Eclipse Oxygen 공식 다운로드 : https://www.eclipse.org/downloads/① 아래의 화면에서 [Mac OS X (Cocoa) 64-bit] 클릭 ② 아래 화면에서 [Select Another Mirror] 클릭 ※ 다운로드 서버를 바꾸는 작업입니다. 일본에 거주하신다면 그냥 다운로드 받으시면 됩니다.③ 아래 화면에서 [Korea, Republic Of - KAIST] 또는 (카이스트 서버에서 다운로드)[Korea, Republic Of - Daum Kakao Corp.] 클릭 (다음 카카오 서버에서 다운로드) ※ 저는 카카오에서 다운로드 받았네요. 빠를 것 같아서...④  다운받은 압축 파일 [eclipse-jee-neo......64.tar.gz] 의 압축 해제 ⑤ 위 화면과 같이 [Eclipse]를 [응용 프로그램] 폴더로 이동 후 압축 파일 제거※ 어플리케이션으로 다운로드 되어서 추가로 설치가 필요하지 않습니다!⑥ [응용 프로그램] - [Eclipse] 실행 ⑦ [Eclipse] 실행 후 나타나는 아래 화면에서 [OK] 버튼 클릭 ⑧ 우측 하단 [Always show ..... start up] 체크 해제 후 좌측 상단 [Welcome] 탭 닫기 이렇게 하면 Mac OS X 에서 Eclipse 설치가 끝났습니다. 어려우셨나요?쉽게 설명한다고 했는데 혹시 막히는 부분이 있다면 댓글을 남겨주세요.이번것은 너무 쉬워서 아마 없을 것으로 예상합니다 :)프로그램을 설치했으면 올바르게 동작하는지 검증을 하는 절차가 필요하겠죠?다음 항목 5번과 같은 순서로 Java SE와 이클립스가 잘 설치 되어 동작하는지 확인해 봅시다.5. 테스트 해보기① [File] - [New] - [Other] 클릭 ② [Java Project] 선택 후 [Next >] 버튼 클릭 ③ Project name : [helloworld] 입력 후 [Finish] 버튼 클릭 ④ 생성된 프로젝트의 하위 폴더 [src] - [우클릭] - [New] - [Class] 선택 ⑤ 아래 화면과 같이 진행 ⑥ 아래 화면과 같이 생성된 [HelloworldMain.java] 를 더블클릭하여다음과 같이 입력 후 상단 빨간 박스로 표시된 [Run(실행)] 버튼 클릭 ⑦ 아래 화면과 같은 결과 [Hello World] 가 나타나는지 확인 어떻게 출력이 잘 나오셨나요?여담이지만 출력할 때 사용한 Hello World는 전 세계의 개발자들이IDE를 설치하고 테스트 할때 사용하는 문장입니다.혹시라도 중간에 막히거나 오류가 발생하는 부분이 있다면 댓글로 남겨주세요!다음 챕터는 프로그램과 그 구조에 대해 다뤄보도록 하겠습니다. 긴 글 읽어주셔서 감사합니다.
2.9K
0
다메다메· 7년

Java의 특징

안녕하세요. 이제 Java 초보자 다메입니다.이 소책자는 초보자가 입문자의 눈높이에서 작성한 Java를 위한 입문서 입니다.Java를 최근 들어서 다시 복습하고 있어 감회가 새롭네요.초보자나 입문자나 도긴개긴이지만 최대한 이해하기 쉽게 풀어서 작성해보도록 하겠습니다 :)이번 챕터는 Java의 특징에 관한 내용입니다. 시작합니다.1. Java란?Java란 객체 지향 프로그래밍 언어 중 하나로 다양한 장점을 지니고 있는 언어입니다.MicroSoft가 개발한 C#이라는 언어는 Java에서 영감을 얻어 개발했다고 할 정도로 완성도가 높아요.첫줄에서 설명 드렸듯, 객체 지향성을 보유한데다가 보안성 측면에서도 우수합니다. 뭔가 좋다는 얘기가많이 나오니 좋은 언어인 것 같지 않나요? 자세한 장점은 다음 항목에서 알아보도록 합시다.2. Java의 장점1) 무료로 사용 가능현재 Java는 오픈 소스인 상태입니다.추후에 어떻게 될지는 모르겠지만 오픈소스이기 때문에 무료로 이용이 가능하죠.단, PHP랑은 다르게 이용자가 개발에 직접 참여하지는 않습니다.잘 만들어진 언어를 무료로 사용한다니... 이거 완전 개이득?2) 배우기 쉬운 언어Java가 배우기 쉽다는 얘기 들어 보셨나요?Java는 점유율이 굉장히 높은 프로그래밍 언어로, 사용하는 사람이 많기 때문에그 만큼 습득할 수 있는 정보의 양도 많습니다. 또한, 라이브러리가 잘 작성 되어있어 원하는 기능을 라이브러리에서 채택해서 사용하면 되죠.내가 만들지 않아도 이미 원하는 기능이 있다면 생산성이 엄청 높아질 것 같지 않나요?3) 우수한 언어적 디자인Java는 언어적 디자인이 뛰어납니다. 현존하는 객체지향 언어들은 Java에서 영감을 받은 언어가 많아요.예를 들자면 C# 이라던지... 만약 디자인이 조잡하다면 Java를 본따 만들 이유가 없겠죠?이 내용은 3. 기술적 특징에 귀결됩니다.3. 기술적 특징1) 웹과의 높은 연동성Java로 웹 페이지를 제작할 수 있다는거 알고 계시나요?JSP(Java Server Pages)를 이용해 Java로 웹 페이지를 제작할 수 있어요.요새는 Spring Framework라는 것을 이용해 웹 페이지 제작에 필요한 기능을 지원 받을 수 있다고 해요.저의 최종 목표는 Spring Framework를 이용한 웹 페이지 제작이니 같이 열심히 공부해 봅시다.2) 높은 보안성Java는 원래 네트워크 분산 처리 환경에서 사용하기 위해 디자인된 언어입니다.네트워크 환경은 다른 환경보다 보안의 측면이 강조되야 하죠. 네트워크의 해킹은 곧 정보의 누출이니까요.따라서 Java는 보안에 중점을 두고 있어요. Java는 바이러스가 침투하지 못하는 구조를 가지고 메모리에서데이터 접근을 제한할 수 있습니다. 접근 권한이 없으면 데이터 구조나 데이터에 접근을 하지 못합니다.추후에 같이 실습 예제를 해 나가면서 배울 수 있으니 "아! 자바는 보안이 뛰어나구나!"정도로 받아들이시면 될 것 같네요. 3) 메모리 관리의 용이함C나 C++은 메모리 관리를 사용자가 직접 해주어야 합니다. 이거 실제로 해보면 엄청 어렵습니다 ㅠㅠ...하지만 Java는 GC(Garbage Collection)라는 기능이 있어, 메모리 홀(사용하지 못하는 작은 메모리 공간)을 자동으로 모아 큰 메모리 영역을 생성해 사용할 수 있게 바꾸어 줍니다.굉장히 편리한 기능이에요. 저도 Java를 공부하면서 메모리 관리에 대한 필요성을 못느꼈습니다.추후에 제 수준이 높아진다면 필요하겠지만 아직은 그럴일이 없었네요 :)4) 높은 이식성Java는 JVM(Java Virtual Machine)이라는 것이 내장이 되어있어, 운영체제에 구애받지 않습니다.프로그래밍 언어중 하나인 C/C++을 예를들면 Linux에서 원활히 작동하던 C/C++ 기반 프로그램이 Windows에선 작동하지 않을 수 있다는 얘기죠. 이는 생각하는 것 보다 큰 문제입니다.어떤 프로그램을 만들 때 지원하는 운영체제의 수 만큼 프로그램을 추가로 생성해야 한다는 의미죠.물론 소스코드의 내용은 대동소이 하겠지만, 생산성에 문제가 생깁니다.하지만 Java는 그럴일이 없다는거...! 단 JVM을 구동하는데에 추가적인 오버헤드가 생깁니다만이는 Java의 장점들에 비하면 아주 작은 문제일 뿐입니다.5) 객체 지향성이는 객체 지향 언어에 관한 지식이 없는 사람에게는 조금 생소할 수 있습니다.객체 지향 언어는 절차 지향 언어와 비교되는데, 절차 지향 언어는 기존의 C언어 같이 객체가 데이터만 보유하는단순하고 불편한 언어라고 생각하시면 됩니다.객체 지향 언어는 객체가 데이터 뿐만이 아닌 사용하는 방법(method)까지포함할 수 있다고 생각하시면 됩니다.데이터와 사용 방법을 동시에 보유한다니, 얼마나 큰 장점인지 아직 감이 잘 안오시죠? :D이는 앞으로 꾸준히 살펴볼 내용이니"아, 이거 내 생각보다 엄청 편리한 도구인거 같다!" 라고 생각하시면 좋겠네요.오늘은 이정도만 살펴보는 것으로 마치겠습니다.다음 챕터는 환경 구축을 다뤄보도록 하겠습니다. 긴 글 읽어주셔서 감사합니다!
1.7K
1
0
yous3163
yous3163·2018-01-25
java=jvm..
kimhokimho· 7년

2018년에 수요 많은 프로그래밍 언어 7가지

소프트웨어(SW) 개발 분야는 다이나믹하다. 몇 년 새 새로운 프로그래밍 언어, 프레임워크가 인기를 얻었다가 한순간 잊혀지기도 한다.​따라서 개발자들은 향후 커리어 발전을 위해 새로운 기술에 항상 관심을 가질 필요가 있다. 그렇다면 당장 내년에는 어떤 언어에 관심을 가져야 할까.​기업들이 연말연초 어떤 개발자를 채용하고 싶어하는........
1.6K
0