본문 바로가기

전체 글315

[Spring] 스프링이란? 스프링은 여러가지의 기술의 모음이다. 필수 : 스프링 프레임워크, 스프링 부트선택 : 스프링 데이터(CRUD도움), 스프링세션, 스프링 시큐리티(보안), 스프링 RestDocs(API문서화), 스프링 배치, 스프링 클라우드  스프링 프레임워크핵심기술 : 스프링 DI 컨테이너, AOP, 이벤트, 기타웹 기술 : 스프링 mvc, 스프링 webflux데이터 접근 기술 : 트랜젝션, JDBC, ORM지원, XML지원기술 통합 : 캐시, 이메일, 원격접근, 스케줄링테스트 : 스프링 기반 테스트 지원언어 : 코틀린, 그루비이들을 통합해서 스프링 프레임워크라고 한다. 스프링 부트스프링을 편리하게 사용할 수 있도록 지원, 최근에는 기본으로 사용단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성tomcat 같은 웹.. 2024. 9. 13.
[BombLab] phase_6 해설 드디어 마지막이다!마지막인만큼 좀 길다ㅜㅜ phase_6 disassemble이제 이 부분을 보면 6개의 숫자를 입력받는 phase라는 것을 유추할 수 있다. 나는 임의로 1 2 3 4 5 6을 넣어보겠다. 위 코드들을 보면 $r13에 있는 수가 eax로 들어가고, eax에 있는 수에서 1이 한번 빼진 후 5와 비교를 한다.만약 6보다 작거나 같으면 52번으로 넘어가고 그렇지 않으면 폭탄이 터진다.그럼 r13에 우리가 입력한 값들이 들어있다는 것을 유추할 수 있다. 확인해보면맞다. 이를 통해 처음 입력하는 숫자는 6보다 작거나 같아야한다는 것을 알 수 있다. 여기서는 이중 반복문이 실행된다.(32에서 93, 65에서 87)52번으로 분기 한 후 r12d에 1을 더한다. 지금 r12에는 0이 들어있으니까 .. 2024. 9. 11.
[객체지향] 1장 : 협력하는 객체들의 공동체 내용 정리서론객체지향을 실세계의 모방으로 설명하는 것은 적합하지 않다. 하지만 많은 사람들이 이와 같은 방식을 채택하는 이유는 객체지향의 다양한 측면을 이해하고 학습하는데 매우 효과적이기 때문이다. 협력하는 사람들직장인이 카페에 가서 아메리카노를 시킨다.직장인은 캐시어에게 주문을 한다.캐시어는 직장인으로부터 받은 정보를 컵에 적어 바리스타에게 넘긴다.바리스타는 컵에 쓰여진대로 커피를 만든다.바리스타가 완성된 음료를 캐시어에게 넘긴다.캐시어는 진동벨을 울려 손님을 부른다.손님은 진동벨을 반납하고 음료를 가져간다. 위 과정에서는 역할, 책임, 협력이라는 세가지 개념이 어울려 조화를 이루고 있다. 각 사람은 손님, 바리스타, 캐시어라는 역할을 가지고 있다.각각은 협력하는 과정에서 자신이 맡은 책임을 다한다. .. 2024. 9. 10.
[BombLab] phase_5 해설 이제 phase_5 해설을 해보겠다. phase_5 disassemblephase_5의 전체적인 코드는 위와 같다.나는 임의로 hispgs를 입력하였다. 를 보면 string_length를 호출하고 리턴값인 eax의 값이 6인지 확인한다.이를 통해 입력되어야 하는 값은 6글자의 string이라는 것을 유추할 수 있다. 그 다음 쭉 내려가보면 eax에 0을 넣는 과정을 거치고 41번부터 70번을 6회 반복한다. 이를 통해 한 글자씩 어떤 변형을 하는구나! 라는 것을 알 수 있다. 이후 strings_not_equal을 통해서 두 string을 비교한다. 이건 phase_1에도 나온 함수이다.이 떄 esi에 특정 주소에 있는 값을 넣는다. 이 값을 꺼내보면flyers라는 string이 나온 걸 볼 수 있다... 2024. 9. 10.
[카카오테크캠퍼스] 5,6주차 과제 코드리뷰 정리 5,6주차는 카카오 로그인와 배포라 피드백이 많이 없어서 합쳤다. code를 yml파일에 넣어서 깃허브에 올리지 않도록 한다.카카오 로그인을 구현할 때 code와 client_id가 필요하다. 그런데 이 값을 깃허브에 올리게 되면 보안상 많은 문제가 생길 수 있다. 그래서 이런 정보는 yml파일에 넣어서 git에 올라가지 않도록 해아한다. api에 들어가는 body는 dto로 만들어서 관리하자.나도 처음에는 이러한 방법으로 구현하려고 했으나, 왜때문인지 잘 되지 않았다.그래서 이 부분에 대해서 팀원분들께 여쭤보았더니 마침 같은 문제로 고민하다가 해결하신 분이 코드를 알려주셨다. 이 부분에서는 dto를 바로 넣으면 안된다. map 형태로 넣어야 하기 때문이다.ObjectMapper objectMapper .. 2024. 9. 9.
[BombLab] phase_4 해설 여러분 할 만 하신가요 지금 정말 슬프실텐데요.. 저도 작년에 밤랩 강의 들을 때 정말 슬펐어요따라오고 계신 분은 정말 잘하시고 계신거구요 아닌 분들도 좌절하지 마시길 바랍니다. 저도 1도 못따라갔었어요ㅎㅎ 그래서 그 시절을 생각하면서 최대한 교육이 끝나고도 공부를 해볼 수 있도록 최대한 열심히 쓰고 있습니다. 잘 전달되었으면 좋겠네요! 그럼 phase_4 시작하겠습니다 phase_4 disassemble phase_3과 비슷한 부분이 있다! 바로 sscanf 함수를 호출하기 전에 rsi에다가 어떤 값을 넣는 것이다. 이걸 까보면 phase_3과 마찬가지로 두 정수를 입력받고자 한다는 것을 알 수 있다. eax에는 입력받은 숫자의 갯수가 들어가니까 무조건 2이다. 그리고 0x8(%rsp)에 들어가는 값을.. 2024. 9. 9.