본문 바로가기
반응형

프로그래밍언어36

annotation 만들기, 커스텀 어노테이션 만들기, annotation 설명 종류 타입 Annotation 이란 ? java (1.5) 부터 등장했으며 프로그램에 추가적인 정보를 제공하는 메타 데이터라고 할수있다. 메타데이터란 어플리케이션에서 처리해야 할 데이터가 아니라 컴파일 과정과 런타임에서 코드를 어떻게 컴파일하고 처리할 것인지에 대한 정보를 말한다. 이런 Annotation 옵셥(@Retention)에 따라 컴파일 전, 컴파일 시기, 런타임 시기에도 처리되도록 할수있다. Java 의 리플렉션을 사용하여 런타임 시기에 어노테이션의 메타 데이터를 바탕으로 AOP를 구성하는데 큰 도움을 줄수있다. 이러한 메타 데이터를 활용하여 비지니스 로직과 분리하여 대상의 유효성 체크, 값 주입, 역활 주입 등을 수행할 수 있어 코드를 간결하게 작성할수 있다. - 주의사항 Annotation 자체는 특.. 2022. 9. 4.
Java Functional Programming 스트림 설명 종류 그리고 고차함수 스트림 (Stream) Stream 은 Java 8버전부터 추가되었습니다. 아래 제공하는 여러가지 데이터를 처리할수 있는 기능들을 제공합니다. 상당히 편리하지만 제대로 알고써야 편리한 기능입니다. Filter, Sorted, Map, Match, Reduce, groupingBy 원시 타입을 위한 IntStream, LongStream 같은 원시타입을 다루는 스트림과 레퍼런스 타입(클래스, 일반 컬렉션 객첵)등을 다루는 일반 스트림이 존재합니다. 스트림은 아래와같이 일련의 작업등을 특정한 조건에 대입하여 원하는 데이터를 제어하는 기술입니다. 스트림을 가장 쉽게 설명한건데 우리가 데이터를 받을때 첨부터 원하는 데이터만 받을수도 있지만 위에 그림처럼 데이터(꽃게, 물고기, 해파리) 들 중에 원하는 물고기만 .. 2022. 8. 13.
Java Functional Programming 함수형 프로그래밍으로 가기위한 용어정리 불변객체, 일급함수, 고차함수, 커링 자바 프로그래밍중 함수형 프로그래밍을 아직 많이 접해보지 않았다면 아직은 우리에게 익숙한 변수 함수를 이용한 데이터 코드를 보여드리도록 하겠습니다. 굳이 약간 어그로가 될수도 있을만한 코드를 공유드립니다. 같은 기능에 대해서 "절차지향 코드", "객체지향 코드", "함수지향 코드" 3가지를 살펴 보도록 하겠습니다. 절차 지향 적인 코드 레벨 변수와 함수를 이용해서 데이터를 가공하는 부분에 초점을 두고있으며 데이터 가공 목적이 강하기 때문에 데이터가 정확하다면 중복된 코드레벨이 발생할수 있지만 단점으로는 길어질수 있는것 같습니다. 그리고 value가 변하게되면 코드들에 Static value들이 존재하기때문에 운영 리소스에 소비되는 시간이 많이 발생해서 피로도가 증가할것 같습니다. class Main { .. 2022. 8. 12.
Type Boolean Integer to boolean integer 차이점 Java Wrapper형 과 Primitive형 언제 쓰면되나? 안녕하세요 앵과장입니다. 벌써 2022년 봄지나가네요 그만큼 프로젝트 일정도 중간을 향해 달려가는중입니다. 한참 코드리뷰를 진행하고 있다보니 알고 있지만 다시한번 또 제목에서 언급한것처럼 기본형(Wrapper) 그리고 참조형(Primitive) 사용하는방법 언제쓰면 좋은지 정리 하도록 하겠습니다. Wapper 타입 Primitive 타입 종류 Boolean boolean Integer integer Byte byte Short short Long long Float float Double double Character character Boxing UnBoxing 에 대해서 많은 부분 설명을 하고 있는데 사실 개발진행하면 박싱 언방식보다는 좀더 용도에 초점을 맞춰서 설명하는게 실용성에서 고민을 해보도록 .. 2022. 5. 3.
파이썬 웹 크롤링 (Python web crawling or scraping) 만들기 어떤 라이브러리 사용하면되나요? With anaconda Step 1 안녕하세요 앵과장입니다. 바로전에 맥에 아나콘다 설치 후 가상환경 구성까지 진행하였습니다. 맥 아나콘다 가상환경 파이썬 설치 방법 python3 M1 맥 파이썬 아나콘다 가상 개발 환경 설정 안녕하세요 앵과장입니다. 파이썬 가상환경 설정을 진행해보도록 하겠습니다. 바로 앞에서 pyenv 가상환경을 설정해봤는데 M1에서 그렇게 나이스한 가상환경설정은 아닌것 같아서 아나콘다 로 angryfullstack.tistory.com 크롤링 하는 이유? 크롤링을 사용하는 이유는 무엇일까요? 개발에는 항상 의도적인 목적이 존재하는데 크롤링하면 왠지 남에정보를 가져오거나 좋은의도로 접근하지 않는것 같은 느낌이 있는데요!! 크롤링 이슈로 몇가지 서비스플랫폼에소 법적인 이슈가 있던적이 있는데 알게모르게 서비스 플랫폼회사들은.. 2022. 1. 18.
python3 M1 맥 파이썬 아나콘다 가상 개발 환경 설정 안녕하세요 앵과장입니다. 파이썬 가상환경 설정을 진행해보도록 하겠습니다. 바로 앞에서 pyenv 가상환경을 설정해봤는데 M1에서 그렇게 나이스한 가상환경설정은 아닌것 같아서 아나콘다 로 잡아보도록 하겠습니다. pyenv 설정은 아래 링크를 참고하세요!! Python파이썬 시작하기 M1 mac 최신버전 3.10.x 가상환경 pyenv 설정하기 2편 안녕하세요 앵과장입니다. 오늘은 파이썬을 진행하기위해서 선행조건인 Local에 가상환경을 구성하도록 하겠습니다. 파이썬 같은 경우 보통 가상환경을 구성해서 사용하는데 왜 해야하는거지? angryfullstack.tistory.com 아나콘다 아나콘다는 M1칩에서 많이 사용하고있는 가상환경인것 같습니다. 파이썬 개발할때 사용됩니다. 라이브러리 이름들은 참 하나같이.. 2022. 1. 16.
Java 코드 컨벤션 협업을 위한 방법 안녕하세요 앵과장입니다. 2022년 이제는 그만 모아야 할것 같은 웰컴 패키지를 받았습니다. 앞으로 3년~4년 정도는 웰컴팩을 받지 않는 방향으로 살아보도록 하겠습니다. why 코딩 규칙이 필요한 이유? 소프트웨어 개발에서 가장 고민되는 부분은 변수명 메소드명 입니다. 언어별로 요구하는 스타일이 존재하는데 Java는 보통 카멜표기법으로 표현하며 enum을 선언할때 대문자를 선호 하는편입니다. Java는 컴파일 언어이며 지속적으로 성장하는 언어입니다. 타입 선언시 var 라는 스크립트에 방법적 접근도 가능하지만 직관적이지 않을 수 있습니다. Long은 기본 Null 이며 long 0의 값으로 선언됩니다. 협업에는 구성원들에 성장과 성향에 따라서 학습된 러닝커브가 인지된 상태에서 진행 되어야 합니다. 사람마.. 2022. 1. 14.
Python파이썬 시작하기 M1 mac 최신버전 3.10.x 가상환경 pyenv 설정하기 2편 안녕하세요 앵과장입니다. 오늘은 파이썬을 진행하기위해서 선행조건인 Local에 가상환경을 구성하도록 하겠습니다. 파이썬 같은 경우 보통 가상환경을 구성해서 사용하는데 왜 해야하는거지? 파이썬 가상환경 설정 하는 이유 프로젝트 배포진행하면 원격서버에 패키지들을 설치 해줘야 합니다. 가상환경을 구성하는 가장 중요한 포인트는 서로 의존성(Dependency)이 필요한 라이브러리들에 구성패키지 버전업이 발생할수 있는 프로젝트에서 정상적으로 잘 관리하기 위한 용도라고 생각 해주시면 됩니다. 이런 부분들을 고려하지 않고 서비스 운영시 발생할 수 있는 위험요소와 서비스 영향도에 대한 문제를 처리하기 힘든 상황이 발생할수 있습니다. pyenv 설치 pyenv는 여러 파이썬 버전을 쉽게 변경할수 있는 환경 변수 설정이라.. 2021. 12. 18.
파이썬 시작하기 Python 언어와 제공하는 웹프레임워크 알아보기 1편 안녕하세요 앵과장입니다. 최근에 집에서 파이썬 공부를 가볍게 해보려고 어떤걸 만들어볼까 고민하다가 집에서 마눌님이 관리하고있는 여러 가계부나 정산처리 등을 좀더 손쉽게 편하게 사용할수 있도록 관리자 APP을 만들어보려고 합니다. JAVA는 많이 해봤으니 Python으로 구현 예정입니다. 하다가 어!! 왜이러지 할수 있는 것들이 발생 할수도 있지만 시행착오와 여러 경험을 하면서 점진적으로 성장 해보도록 하겠습니다. Python Framework Python 언어 관련 Syntax는 가볍게 생활코딩이나 집에 사둔 책이 있어서 목차정도만 살펴보도록 하겠습니다. 언어라는게 모 거기서 거기 아니겠습니까?! 아닌가... 물론 하다보면 이거 머리로 생각나고 로직도 생각나는데 손으로 구현이 안되는 알고리즘 풀때 느낌이.. 2021. 12. 12.
Java Collection Framework JCF 자료구조 종류 와 특징 안녕하세요 앵과장입니다. 개발하면서 우리가 가장 많이 사용하고 있는 자료구조에 대해서 정리해보도록 하겠습니다. 모든언어는 데이터를 사용하는데 있어서 다양한 종류의 Collection을 제공 합니다. 데이터를 조회하고 등록 수정 삭제 를 넘어서 가공하거나 통계 집계를 내거나 Join을 하고 타입을 변환도 하면서 말입니다. 매번 데이터를 가공하는데 처음부터 구현하기란 참 쉬운게 아닙니다. 언어에서 제공하는 라이브러리를 이해하고 필요한곳에 사용하는 방법에 대해서 알아보도록 하겠습니다. 컬렉션 Java Collection Framework Java에서 컬렉션(Collection)이란 데이터의 집합, 그룹을 의미하며 JCF(Java Collections Framework)는 이러한 데이터, 자료구조인 컬렌션과 이.. 2021. 12. 6.
Java 제네릭(Generic) 사용 방법과 개념 정리 안녕하세요 앵과장입니다. Springboot 를 사용하기 전에는 기능에대한 공통적인 요소나 여러 데이터 타입 및 객체를 처리하기 위해서 자주 사용했는데 최근에는 자주 사용하고 있지 않다보니 어떻게 동작했었지 하고 의문을 가지게 되어 기록하고 공유 합니다. 제네릭(generic) 언제 가장 많이 사용하나요? 요구 조건을 개발하다보면 같은 동작과 행위를 하는데 있어서 변수에 값을 IF 조건문 그리고 Switch Case문을 사용하는데 소스가 이쁘지 않거나 모양이 좀 빠지는데 이럴경우가 존재합니다. 확장성 부분도 고려될때 사용되기도 하는데 제가 사용했던 부분은 ApiResponse 처리할때 사용했던 기억이 있습니다. 이걸 정말 많이 사용하냐 라는 질문에는 어떤 개발을 하느냐에 따라 달라지는데요 개발해야하는 비.. 2021. 12. 1.
Java 파일이 JVM에서 동작하는 원리와 메모리 영역에 대한 생각정리 안녕하세요 앵과장입니다. 벌써 2021년 12월이 다가오고 있네요 남아있는 모든 주변 사람들과 내가 해왔던것들에 대해서 정리하는 시간을 가지고 착하게 살았는지 나쁘게 살았는지 자신을 뒤돌아 보는 시간을 잠깐 가져보시기 바랍니다. 저는 이번 크리스마스에는 산타할아버지에게 선물 받긴 힘들거같네요 아이들한테는 착한아이가 되라고 했지만 저는 착한 어른이 되지는 못한것 같습니다. (2021년 나와 함께한 모든 분들께 여러가지로 죄송합니다) Java 딱히 Java 설명을 하려고 작성한건 아니고 너는 참 오랫동안 사랑받는구나. 한국에서는 말이야!! 넌꼭 한글과같은 느낌이야 Java는 컴파일언어 입니다. 언어에는 여러종류가 있는데 참 친절한 언어이면서 어떻게보면 타입도 명확하고 자유도도 떨어지고 최근에 만들어진 언어들.. 2021. 11. 26.
728x90