본문 바로가기
[도서 정리] 62. TLS - 보안의 기본 62. TLS - 보안의 기본 -TLS(Transport Layer Security) 및 그 이전 버전인 SSL(Secure Socket Layer)은 인터넷에서 통신할 때의 인증 및 통신 암호화 장치이다.TLS 나 SSL 라고 하면 암호화의 이미지가 강하지만 실제로 암호화 통신을 하는 데 있어서 가장 먼저 중요한 것은 통신이 신뢰할 만한지를 확인하는 프로세스이다.통신 상대가 누군가를 가장하고 있다면 암호화를 해도 결국 정보는 유출되기 때문이다. -TLS 는 처음에 핸드쉐이크 프로토콜이라고 해서 상대를 인증하기 위한 절차를 실행하는데, 이 절차 안에 서로의 상대가 갖고 있는 인증서를 받아 검증하는 스텝이 있다.인증서가 신원이 맞는지는 인증서의 인증국이 보내오는 리스트와 대조함으로써 확인할 수 있다. * .. 2019. 12. 11.
[Java Concurrency] 성능, 확장성 #1 [Java Concurrency] 성능, 확장성 - 스레드를 사용하는 가장 큰 목적은 바로 성능을 높이고자 하는 것이다. 스레드를 사용하면 시스템의 자원을 훨씬 효율적으로 활용할 수 있고, 앱으로 하여금 시스템이 갖고 있는 능력을 최대한 사용하게 할 수 있다. 그와 동시에 기존 작업이 실행되고 있는 동안 새로 등록된 작업을 즉시 실행할 수 있는 준비를 갖추고 있기 때문에 앱의 응답 속도를 향상시킬 수 있다. - 성능을 높이는 방법은 대부분 앱의 내부 구조를 복잡하게 만들어야 하는 경우가 많고, 따라서 안전성과 활동성에 문제가 생길 가능성도 적지 않다. 최악의 경우에는 성능을 높이기 위해 적용한 프로그래밍 기법 때문에 프로그램의 다른 부분에서 역효과를 가져오거나 성능상에 문제를 일으킬 수도 있다. - 성능.. 2017. 5. 3.
[Effective Java] 잘 판단해서 최적화하자 [Effective Java] 잘 판단해서 최적화하자 - 최적화에 대한 명언이 있다. 더 많은 컴퓨팅 죄악이 다른 어떤 한 가지 이유(무지로 인한 어리석음을 포함해서)보다는 효율성(달성이 안 되는)의 이름으로 저질러진다. 사소한 효율성은 잊어야 한다. 97%의 시간에 대해 논하자. 성급한 최적화는 모든 죄악의 근원이다. 최적화에 관한 두 가지 규칙을 따르자. 규칙 1. 하지 말자. 규칙 2. (전문가에 한해서). 아직 하지 말자. 정말 최적화되지 않은 솔루션이 있을 때까지는. - 성급한 최적화는 얻는 것보다 잃는 것이 더 많기 쉽다. 최적화를 하면서 빠르지도 않고 제대로 동작하지도 않으며, 문제를 쉽게 해결하기도 어려운 소프트웨어를 만들기도 쉽다. - 성능 때문에 훌륭한 아키텍쳐 원리를 포기하지 말자. .. 2017. 2. 16.
[android] 디컴파일링시 Plain Text 로 노출되면 안 되는 정보들 숨기기 [android] 디컴파일링시 Plain Text 로 노출되면 안 되는 정보들 숨기기 -아주 간단하게는 각 character 들에 특정값을 더하고 빼기정도를 하는 것으로 인코딩할 수 있다. 하지만 보안 레벨 측면에서는 상당히 조악한 방법으로, 명석한 디컴파일러(사람기준)들은 이정도는 아주 간단하게 디코딩 할 수 있다. - 그럼 어떻게 안정적으로 만들 수 있을까? 너무 어렵지 않으면서 나름 안정성을 줄 수 있는 방법은 sign key 에서 특정 값을 추출해서, 보안적으로 안정성이 높은 알고리즘으로 encoding/decoding 을 하면 된다. Encrypt ( Encoding )SecretKey key = null;byte[] encryptedByte = null;try{PackageInfo packag.. 2015. 12. 24.
[Effective Java] 파이날라이저 ( finalizer ) 의 사용을 피하자. [Effective Java] 파이날라이저 ( finalizer ) 의 사용을 피하자. - 파이널라이저는 예측 불가에다가 위험하기도 하며 일반적으로 불필요하다. - 파이널라이저의 큰 단점은 신속하게 실행된다는 보장이 없다는 것. 즉 파이널라이저에서 time critical 하게 중요한 일을 해서는 안 된다는 것. - 파이널라이저가 얼마나 빨리 실행되는가는 가비지 컬렉션 알고리즘에 달려있으며, 이는 JVM 종류에 따라 다양하다. - 자바 언어 명세에는 파이널라이저가 신속하게 실행된다는 보장이 없는 것은 물론, 반드시 실행될것인지도 보장하고 있지 않다. - System.gc() 와 System.runFinalization() 메소드들을 사용하지 말자. 그 메소드들은 파이널라이저가 실행될 가능성을 높여주긴 하.. 2015. 12. 15.
[android] flood fill algorithm performance tests. android, flood fill algorithm performance tests. 위와 같은 공룡의 엉덩이, 발, 그리고 꼬리에 이르는 부분을 FloodFill algorithm 을 적용하여 색칠해보았다.avg 값은 5회의 결과를 평균 낸 값이다. 1. Very Intuitive and Simple Flood Fill Algorithm Recursive method call 을 이용하여, 한 점을 기준으로 동,서,남,북 pixel 에 대해 recursive call 을 호출하는 방식이다. private void floodFill3(Bitmap bitmap, Point fillStartPoint, int targetColor, int replacementColor){Queue queue = new L.. 2014. 4. 11.
[Spring] Spring Framework 의 개요 #2 Spring Framework의 개요 #2 변화를 예상 -> design pattern 적용 가능. 관심사의 분리( Separation of Concerns ) 관심이 같은 것끼리는 하나의 객체 안으로, 관심이 다른 것은 가능한 따로 떨어져 영향을 주지 않도록 분리. 템플릿 메소드 패턴( Template Method Pattern ) 슈퍼클래스에 기본적인 조작의 흐름을 만들고, 그 기능의 일부를 추상 메소드나 오버라이딩 가능한 protected 메소드 등으로 만든 뒤, 서브클라스에서 이런 메소드를 필요에 맞게 구현해서 사용하도록 하는 방법. 이 때 선택적 override 가능한 method 를 hook method 라고 한다. 팩토리 메소드 패턴( Factory Method Pattern ) 서브클래스에.. 2013. 6. 25.
내 블로그의 점수( in-bound 지수 )를 확인해보자. 내 블로그의 점수( in-bound 지수 )를 확인해보자. 블로그 혹은 사이트( 이하 블로그만 표기하겠음. ) 를 운영하면서 어느정도 안정화가 되면내 블로그가 지금 잘 운영되고 있는 것인가, 혹은 내 블로그를 더 발전시킬 수 있는 방법은 없을까 궁금해진다. 이것을 가능하게 하는 Tool 혹은 사이트들이 있는데,오늘 소개할 녀석은 내 블로그의 점수를 매겨주는 사이트이다. 무료로 블로그 점수를 측정해주는 prchecker 사이트 로 이동하기. 가운데 있는 칸에 블로그 주소를 넣은 후에 [Check PR] 버튼을 누르면 블로그 점수를 측정해준다. 나의 블로그 점수는 3점이다.( 이럴수가!! ) 이 순위의 의미가 무엇인가를 알게 되어, 부족한 부분을 개선하면 분명블로그에 도움이 되리라.. 이 점수는 어떻게 만들.. 2013. 5. 17.
[SEO] 검색엔진 패널티 피해가기. ( SEO 최적화 ) 검색엔진 패널티 피해가기. ( SEO 최적화 ) 구글 검색결과에 페널티를 받는 케이스들에 대해 알아보자.이 패널티 정책은 다른 검색엔진들도 비슷하게 가져갈 것이라 다음 사항에 해당하는 사이트 혹은 블로그들은 검색엔진 패널티를 받게 되고,검색시 상위랭크에 올라가기( 검색결과가 상위에 올라온다. ) 가 힘들어진다. 1. Copy & Paste 로 구성된 사이트 먼저 등록된 사이트의 글을 그냥 copy & paste 하여 글을 작성한 경우는 구글에서 중복 컨텐츠로 인식하여 패널티가 적용된다. 이 때 Copy 하려는 사이트의 신용도가 높은 경우 ( 상위 랭킹 사이트 or 블로그 ) 중복 컨텐츠로의 구분이 더 쉽다. 구글은 원작자 구분 알고리즘도 가지고 있어 중복 컨텐츠 인식 확률이 높다고 한다. 2. 로딩 속도.. 2013. 5. 11.
반응형