본문 바로가기

프로그램 개발(분석, 설계, 코딩, 배포)145

개발_C언어 프로그램 빌드 과정(실행파일(.exe) 생성 과정) 출처: https://ssinyoung.tistory.com/2 우리가 게임이나 다른 프로그램들을 다운로드하게 되면 바탕화면에 실행파일이 생성되고, 이 실행파일을 통해 프로그램을 실행시킵니다. 이번 포스팅 주제는 이 실행파일의 생성 과정입니다. 예시) 리그 오브 레전드 LoL 클라이언트 다운로드 LoL 실행파일 실행파일은 코드 작성, 전처리기, 컴파일, 어셈블러, 링크 과정을 거쳐서 만들어지게 됩니다. 프로그램 빌드 과정 1. 코드 작성 자, 우선 프로그램을 만들기 위한 소스코드가 필요하겠죠? 버그 없이 돌아가는 코드라면 어떤 것이라도 상관이 없습니다. 간단한 출력 프로그램을 예시로 사용하겠습니다. 간단한 출력 예제 실행 결과 2. 전처리기 컴파일에 들어가기 앞서 사용자가 작성한 소스 코드가 정상 작동하.. 2022. 11. 12.
개발_JDK_LINE의 OpenJDK 적용기: 호환성 확인부터 주의 사항까지 2018년 오라클의 라이선스 체계가 변경되면서 2019년 1월 이후 더 이상 무료로 Oracle JDK를 사용할 수 없게 되었습니다. 이에 LINE 내부에서는 사전에 OpenJDK를 적용하기 위해 필요한 사항이나 검토 항목을 정리하기 위하여 TF(task force)를 구성하였고, 진행된 내용과 사용된 기술적인 사항들을 정리하고자 이 글을 작성하게 되었습니다. 시작하기 전에 본격적인 이야기를 시작하기 전에 OpenJDK를 검토하면서 느낀 부분이 있어 옛날 옛적 이야기를 적어봅니다. 2000년 초반만 해도 OSS(Open Source Software)의 신뢰도에 대한 평가는 극과 극이었고, 공공 기관이나 큰 규모의 사업장에서 실제 OSS를 적용하기에는 쉽지 않은 시기였습니다. 예를 들어 Apache HTT.. 2022. 11. 9.
[작업중]개발_JDK 1.6을 상위 버전으로 올리기 리플렉션이나 deprecated 된 코드들 많이 쓰고 있었으면, 그런 것들 많이 고쳐야 될 겁니다. 그리고 collection 내부 구현이 달라져서, 예를 들자면 HashMap에 넣었다 나온 목록이 다르게 나오는 문제가 있을수 있습니다. 아직도 iBatis 이런 것 쓰고 있다면 이것도 좀 MyBatis로 바꾸고... 아마 JVM 내부 코드를 많이 안쓰는 프로그램이면 JVM 올려서 문제될 가능성은 별로 없고요. 물론 목적은 19c를 사용하기 위함인데 최소 jdk 가 1.8 로 ojbc 8 을 사용할 수 있더라구요 동작한다고 해도 memory leak 가 발생할 수 있으므로 장시간 테스트가 필요합니다 우선 Spring 3는 Java 8을 지원하지 않습니다. 결국 스프링 4로 버전을 올려야할텐데 의존하는 라이.. 2022. 11. 6.
개발_java_java6 java7 문제 개요 kth 내부 서비스 또는 kt 용역 서비스 중 상당수는 호환성이라는 명목 하에 java6 / java7 로 개발/유지보수하는 프로젝트들이 많이 있습니다. 물론 java6 / java7 로 개발한다고 잘 돌던 서비스가 당장 멈추거나 하는 일은 없을겁니다만 서비스 품질은 다음과 같은 측면에서 경쟁사에 뒤쳐진다고 보시면 됩니다. 1) 보안 2) 가용성 3) 호환성 4) 기술 역량 보안 oracle java6 의 End of Public Update 는 2013년 2월, java7은 2015년 4월에 종료되었습니다. 무슨 말인고 하면, 누군가가 java의 새로운 보안 결함을 발견한다면 java6 / java7 로 개발된 서비스는 더이상 보안 업데이트가 없다는 뜻입니다. 다음 사이트(oracle jre 링크.. 2022. 11. 6.
개발_RPC_COM 스텁 프록시 마샬링 언마샬링 스텁 프록시 마샬링 언마샬링 참고 URL http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=50&MAEULNo=20&no=178730&ref=178713 COM객체(로컬) - proxy - 마샬링 - (네트워크) - 언마샬링 - stub - COM객체(원격) 프록시와 스텁을 이해하시려면 먼져 com을 이해 하셔야 하구, com을 이해 하시려면 가 상 함수를 이해 하셔야 합니다. 1. 가상 함수 가상 함수가 객체에 정의 의해 구현 될때 객체는 가상함수 table의 주소를 가지는 변수 를 포함 합니다. 그리고 객체 영역 밖의 부분에 가상 함수 table의 생성 됩니다. 가상 함수 table이란 현재 객체에 정의된 모든 가상 함수의 코드 주소를 저장 합니다... 2022. 11. 4.